vue中的过滤器实例代码详解


Posted in Javascript onJune 06, 2019

过滤器

1.过滤器规则

Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:

双花括号插值{{}}和  v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

<!-- 在双花括号中 -->
{{ name | Upper }}
<!-- 在 `v-bind` 中 -->
<div v-bind:id="martin | Upper"></div>

过滤器分为全局过滤器和本地过滤器,全局过滤器顾名思义就是所有Vue实例挂载的元素内都能使用,而本地过滤器则是指只有过滤器函数所在的Vue实例挂载的元素内可以使用

全局过滤器:

Vue.filter('Upper',function (name) {
    return name.toUpperCase();
});

本地过滤器:

var vm=new Vue({
    el: '#app',
    data: {
      name:'martin'
    },
    filters:{
      Upper:function (name) {
        return name.toUpperCase()
      }
    }
  })

2.串联过滤器

{{name | filterA | filterB }}

解释:

第一步:先把name 放到 filterA过滤器中进行过滤

第二步:将第一步过滤器的结果再放到 filterB再进行过滤,显示最终过滤结果

3.过滤器也可以接收参数,因为过滤器说到底只是一个函数

{{ name | filterA('arg1', arg2) }}

解释:

filterA 在这里应该定义为接收三个参数的过滤器函数。其中 name 的值作为第一个参数,字符串 arg1 作为第二个参数,表达式  arg2  的值作为第三个参数。

最后送给大家一个实例:

vue中的过滤器实例代码详解

源代码:

<!DOCTYPE html>
<html lang="en">
<head>  <meta charset="UTF-8">
  <title>Title</title>
  <script src="./bootstrap/js/jquery-1.10.1.js"></script>
  <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
  <script src="./bootstrap/js/bootstrap.min.js"></script>
</head>
<body>
<div id="app">
  <div class="form-inline">
    <label>id:
      <input type="text" class="form-control" placeholder="请输入你的id" v-model="id">
    </label>
    <label>name:
      <input type="text" class="form-control" placeholder="请输入你的name" v-model="name">
    </label>
    <button class="btn btn-success" @click="add">add</button>
    <label>请输入你的搜索关键字:
      <input type="text" class="form-control" placeholder="请输入你的搜索关键字" v-model="keyword">
    </label>
    <button class="btn btn-success" @click="search(keyword)">search</button>
  </div>
  <table class="table table-bordered table-hover table-striped">
    <thead>
    <tr>
      <th>id</th>
      <th>name</th>
      <th>ctime</th>
      <th>operation</th>
    </tr>
    </thead>
    <tbody>
    <tr v-for="(item,i) in search(keyword)" :key="item.id">
      <td>{{item.id}}</td>
      <td>{{item.name}}</td>
      <td>{{item.ctime|dateFormat}}</td>
      <td>
        <a href="#" class="btn btn-success" @click.prevent="">{{item.operation[0]}}</a>
        <a href="#" class="btn btn-success" @click.prevent="del(i)">{{item.operation[1]}}</a>
      </td>
    </tr>
    </tbody>
  </table>

</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
  Vue.filter('dateFormat',function (date) {
    var dy=date.getFullYear();
    var dm=date.getMonth()+1;
    var dd=date.getDate();
    var dh=date.getHours();
    var dm=date.getMinutes();
    var ds=date.getSeconds();
    return `${dy}-${dm}-${dd} ${dh}:${dm}:${ds}`
  });
  var vm=new Vue({
    el: '#app',
    data: {
      keyword:'',
      id:'',
      name:'',
      list:[{id:1,name:'宝马',ctime:new Date(),operation:['add','delete']},
        {id:2,name:'奔驰',ctime:new Date(),operation:['add','delete']},
        {id:3,name:'大众',ctime:new Date(),operation:['add','delete']}
      ]
    },
    methods:{
      add(){
        var curid=this.id;
        var curname=this.name;
        this.list.push({id:curid,name:curname,ctime:new Date(),operation:['add','delete']});
        this.id='';
        this.name='';
      },
      del(i){
        this.list.splice(i,1);
      },
      search(name){
        var arr=[];
        this.list.forEach((item,i)=>{
          if(item.name.indexOf(name)!=-1){
            arr.push(item);
          }
        });
        return arr
      }
    }
  })
</script>
</body>
</html>

总结

以上所述是小编给大家介绍的vue中的过滤器实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
window.location.hash 属性使用说明
Mar 20 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
jquery处理json对象
Nov 03 Javascript
原生js和jquery实现图片轮播淡入淡出效果
Apr 23 Javascript
jquery获取img的src值的简单实例
May 17 Javascript
webpack的CSS加载器的使用
Sep 11 Javascript
深入理解Node内建模块和对象
Mar 12 Javascript
详解vue-cli3 中跨域解决方案
Apr 10 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
JS代码简洁方式之函数方法详解
Jul 28 Javascript
JavaScript中变量提升和函数提升的详解
Aug 07 Javascript
Vue响应式原理Observer、Dep、Watcher理解
Jun 06 #Javascript
原生js通过一行代码实现简易轮播图
Jun 05 #Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 #Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 #Javascript
JS中实现浅拷贝和深拷贝的代码详解
Jun 05 #Javascript
优雅的处理vue项目异常实战记录
Jun 05 #Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 #Javascript
You might like
配置php网页显示各种语法错误
2013/09/23 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php 数据结构之链表队列
2017/10/17 PHP
javascript数组去重方法汇总
2015/04/23 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
详解vue 动态加载并注册组件且通过 render动态创建该组件
2019/05/30 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python基本数据类型详细介绍
2014/03/11 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
2018/10/14 Python
python版DDOS攻击脚本
2019/06/12 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
python rolling regression. 使用 Python 实现滚动回归操作
2020/06/08 Python
通过实例解析Python文件操作实现步骤
2020/09/21 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
C语言面试题
2015/10/30 面试题
UNIX文件系统分类
2014/11/11 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
《桥》教学反思
2014/04/09 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
迎国庆主题班会
2015/08/17 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers