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 相关文章推荐
使用Jquery来实现可以输入值的下拉选单 雏型
Dec 06 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
Jan 21 Javascript
javascript里模拟sleep(两种实现方式)
Jan 25 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
Nov 17 Javascript
Node.js事件循环(Event Loop)和线程池详解
Jan 28 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
jQuery实现的倒计时效果实例小结
Apr 16 Javascript
浅谈js中的三种继承方式及其优缺点
Aug 10 Javascript
详解Vue自定义过滤器的实现
Jan 10 Javascript
js获取元素的偏移量offset简单方法(必看)
Jul 05 Javascript
微信小程序性能优化之checkSession的使用
Mar 06 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下10件你也许并不了解的事情
2008/09/11 PHP
Php连接及读取和写入mysql数据库的常用代码
2014/08/11 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php实现当前页面点击下载文件的简单方法
2016/09/22 PHP
php将html转为图片的实现方法
2017/05/19 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
bootstrap3 兼容IE8浏览器!
2016/05/02 Javascript
深入理解逻辑表达式的用法 与或非的用法
2016/06/06 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
js判断文件格式及大小的简单实例(必看)
2016/10/11 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
js canvas实现星空连线背景特效
2019/11/01 Javascript
Python multiprocessing.Manager介绍和实例(进程间共享数据)
2014/11/21 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
Python xlwt设置excel单元格字体及格式
2020/04/18 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
Python collections模块使用方法详解
2019/08/28 Python
Python3运算符常见用法分析
2020/02/14 Python
基于keras中的回调函数用法说明
2020/06/17 Python
Keras loss函数剖析
2020/07/06 Python
python 实现单例模式的5种方法
2020/09/23 Python
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
高中军训感言400字
2014/02/24 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
白莲教口号
2014/06/18 职场文书
作风转变心得体会
2014/09/02 职场文书
单位工作证明范本
2015/06/15 职场文书
农贸批发市场管理制度
2015/08/07 职场文书