一、什么是过滤器

官方文档:https://cn.vuejs.org/v2/guide/filters.html

二、过滤器的使用

没有使用过滤器之前:

<div id="app"><table><thead><tr><th>排名</th><th>菜名</th></tr></thead><tbody><tr v-for="item in list" :key="item.id"><td>{{ item.id }}</td><td>{{ item.name}}</td></tr></tbody></table>
</div>
<script>var vm = new Vue({el: '#app',data: {list: [{ id: 1, name: '黄焖鸡' },{ id: 2, name: '烤鱼'},{ id: 3, name: '鸭血粉丝'},{ id: 4, name: '大碗米线' },{ id: 5, name: '螺蛳粉' },{ id: 6, name: '鱼香肉丝'},]}})
</script>

来吧展示:

使用过滤器之后:

  1. 使用双括号的方式去添加过滤器
 <tr v-for="item in list" :key="item.id"><td>{{ item.id }}</td><td>{{ item.name | filterData }}</td></tr>
Vue.filter('filterData',function () {console.log('过滤器被调用了。。。')return '螺蛳粉  my love~~'})//在vm实例对象之前去定义过滤器
var vm = new Vue({.........
})

来吧展示:

注意:过滤器的处理函数中的第一个参数已经规定死了,就是管道符前面的数,这里也就是item.name

如下:

Vue.filter('filterData',function (data) {console.log('过滤器被调用了。。。')return  data+ '~~~~~'})

三、给过滤器传递参数

 <td>{{ item.name | filterData('xxxxxxx')}}</td>
  Vue.filter('filterData',function (data,str) {return  data + str})

来吧展示:

四、使用多个过滤器

<td>{{ item.name | filterData | addstr}}</td>
 Vue.filter('filterData',function (data) {return  data+ '~~~~~'})
Vue.filter('addstr',function (data) {return  data + '哈哈哈哈哈'})

来吧展示:

五、全局过滤器的栗子

<div id="app"><p>{{msg}}</p>
</div>
var vm = new Vue({el: '#app',data: {msg: '鸭血粉丝里面放有:鸭血,鸭肠,鸭肝'},methods: {}});


使用全局过滤器,将"鸭"改成"猪"
方式一:

 <p>{{msg | filtermsg}}</p>
 Vue.filter('filtermsg',function (data) {// return data.replace('a','x')// replace只能替换掉第一项// 第一个参数传入正则,可以全局匹配return data.replace(/鸭/g,'猪')
})


2. 方式二:
在过滤器中传递参数

 <p>{{msg | filtermsg('猪')}}</p>
Vue.filter('filtermsg',function (data,str) {return data.replace(/鸭/g,str)
})
  1. 方式三:
    直接在参数后面传入数据
<p>{{msg | filtermsg}}</p>
Vue.filter('filtermsg',function (data,str='猪') {return data.replace(/鸭/g,str)
})

如果定义了另外一个vm2实例
那么也可以使用全局过滤器

<body><div id="app"><p>{{msg | filtermsg}}</p>
</div>
<hr><div id="app2"><p>{{msg | filtermsg }}</p>
</div><script>Vue.filter('filtermsg',function (data,str='猪') {return data.replace(/鸭/g,str)})var vm = new Vue({el: '#app',data: {msg: '鸭血粉丝里面放有:鸭血,鸭肠,鸭肝'},methods: {}});var vm2 = new Vue({el:'#app2',data: {msg: '哇哦~是鸭血粉丝'},methods: {}});
</script>
</body>

六、私有过滤器

<div id="app2"><p>{{msg | filtermsg | addStr}}</p>
</div>
var vm2 = new Vue({el:'#app2',data: {msg: '哇哦~是鸭血粉丝'},methods: {},filters:{// addStr:function (data) {addStr(data){return data + '~~~~~~wao好好恰'}}});

注意:
私有过滤器只能vm2实例的容器才可以使用,vm实例的区域不能使用

如果全局过滤器与私有过滤器重名的话,会以就近原则,执行私有的过滤器

<div id="app2"><p>{{msg | filtermsg | addStr}}</p>
</div>
Vue.filter('filtermsg',function (data,str='猪') {return data.replace(/鸭/g,str)
})
var vm2 = new Vue({el:'#app2',data: {msg: '哇哦~是鸭血粉丝'},methods: {},filters:{// addStr:function (data) {addStr(data){return data + '~~~~~~wao好好恰'},filtermsg:function (data) {// return data.replace(/鸭/g,str)return data + '111111'}}
});

vue学习笔记(一) ---- vue指令(过滤器)相关推荐

  1. Vue学习笔记01——Vue开发基础

    一.Vue实例配置选项 选项 说明 data Vue实例数据对象 methods 定义Vue中的方法 components 定义子组件 computed 计算属性 filters 过滤器 el 唯一根 ...

  2. Vue学习笔记02——Vue路由

    Vue学习笔记01--Vue开发基础 一.初识路由 1.路由的作用 Vue的路由是前端路由,可以让组件之间互相切换. 2.vue-router.js文件 Vue的路由使用需要引入vue-router. ...

  3. 阿瑶的vue学习笔记(1)Vue核心

    1. Vue核心 1.1. Vue简介 1.1.1. 官网 英文官网 中文官网 1.1.2. 介绍与描述 动态构建用户界面的渐进式JavaScript框架 作者:尤雨溪 1.1.3. Vue的特点 遵 ...

  4. Vue学习笔记(九) Vue CLI

    1.简介 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,它包括三个独立的部分: CLI:一个全局安装的 npm 包,提供在终端里使用的命令 CLI 服务:一个局部安装在使用了 @v ...

  5. Vue学习笔记:Vue中封装自定义步骤条 实现上下一步

    Vue中封装自定义步骤条 实现上下一步 效果图: 如上图:在VUE中实现效果,VUE+Element,ant都有封装好的UI,直接引用就好了: 这里,觉得样式不符合UI设计,所以自定义封装了一个步骤条 ...

  6. 少侠请重新来过 - Vue学习笔记(二) - Vue生命周期

    Vue 生命周期和钩子 每一个vue实例创建时,会经历一段初始化的过程,同时会调用其生命周期钩子,实例的钩子this指向它的Vue实例,不需要在钩子用箭头函数. <template>< ...

  7. day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法

    系列文章目录 day1学习vue2笔记 vue指令 day2 学习vue2 笔记 过滤器 侦听器 计算属性 axios day3 vue2 学习笔记 vue组件 day4 vue 学习笔记 组件 生命 ...

  8. Vue.js 基础语法 入门语句 Vue学习笔记 v-model 双向数据绑定

    Vue.js 基础语法,入门语句,Vue学习笔记 学习网站:https://www.bilibili.com/video/BV15741177Eh vue 的体验 响应式:数据一旦改变,视图就会响应改 ...

  9. 狂神说 vue学习笔记

    vue学习笔记 文章目录 vue学习笔记 一.第一个vue程序 1. 什么是MVVM 2. 为什么要使用MVVM 3.直接新建项目 4.导入vue.js 5.简单绑定元素 6 vue的声明周期 二.V ...

  10. Vue学习笔记进阶篇——Render函数

    本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编 ...

最新文章

  1. 题目1160:放苹果
  2. 目测这个APP要火啦,只有一个功能就要干倒小咖秀?
  3. Windows下动态加载可执行代码原理简述
  4. 12家无人驾驶公司新进展:驾照怕白考了!
  5. 程序员3年工资从7千到2万2,晒出跳槽经历!网友:厉害!
  6. NB-IOT:物联网【无码化】体验NB-loT全流程
  7. Web前端开发规范 之html命名规范
  8. 从事IT行业的应该如何学习最高效的休息方式
  9. MVS同时读取多个二维码
  10. 【课程设计】企业职工工资管理系统 C语言版
  11. react源码分析:babel如何解析jsx
  12. 360木马查杀后mysql数据不能启动
  13. 一张美团外卖的小票看透支付清结算架构!
  14. Excel如何批量删除批注
  15. python咋变汉语_Python3实现汉语转换为汉语拼音
  16. java修改文件一行_java替换文件中某一行文本的内容
  17. GAN 的内在漏洞,只看眼睛就能找出虚拟人脸?
  18. 在Docker中使用Python Selenium和Headless Chrome进行网站自动化测试的方法
  19. additional、extra与supplementary 区别
  20. rtl8139 群晖_X群晖MAC硬改工具包,支持大部分网卡硬改

热门文章

  1. 用matlab表白,你有一颗爱她的心,你就画出来
  2. vue项目微前端试水
  3. 单片机、ARM、MUC、DSP、FPGA、嵌入式错综复杂的关系!
  4. [LSTM]时间序列预测存在的问题--滑动窗口是一把双刃剑【持续更新】
  5. python量化金融下单接口特点
  6. Hibernate_8_Person和IdCard实例_一对一关系:基于外键
  7. NFC功能移植pn54x系列
  8. 部编版三下《燕子》教学反思
  9. Word2016 显示批注
  10. 世界互联网大会,乌镇,互联网人的盛会,大数据文摘来了!