1、过滤器简介

1.1、全局过滤器与局部过滤器

过滤器本质上是一个函数,与自定义指令类似。

  • 全局过滤器
Vue.filter(id, [definition])
  • 局部过滤器
new Vue({el: '#app',filters: {definition(value): {...}}})

案例:将字符串首字母转换为大写字母的全局过滤器

Vue.filter('capitalize', function (value) {if (!value) return '';value = value.toString();return value.charAt(0).toUpperCase() + value.slice(1);})

如果换成局部过滤器

let vm = new Vue({el: '#app',data: { // 参数定义,字典形式},computed: { // 计算属性,多次调用,只计算一次},methods: { // 普通方法,多次调用,多次计算},filters: { // 过滤器capitalize(value) {if (!value) return '';value = value.toString();return value.charAt(0).toUpperCase() + value.slice(1);}}
})

注意:

  1. 当全局过滤器和局部过滤器重名,会采用局部过滤器
  2. 与自定义命令一样,全局过滤器可以在任何 Vue 实例的模板中使用,而局部过滤器只能在该实例绑定的视图中使用

过滤器可以使用在两个地方:

  • 双花括号:{{ 变量 | 过滤器 }}
  • v-bind 表达式:v-bind:href=“变量 | 过滤器”

2、过滤器的参数

过滤器函数总是接收表达式的值作为第一个参数,过滤器本质上是一个 JS 函数,自然可以接收多个参数。

不建议把过滤器功能做的很复杂,这违背了过滤器的设计初衷,比如:Vue.filter(‘format’, function (value, …params) {…})

实例:为表达式的值添加前后缀的过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head><body>
<div id="app"><h2>过滤器</h2><!-- 输出:vue-filters.js --><p>{{ filename | format('vue', suffix) }}</p>
</div><script src="VueJs/vue.js"></script>
<script>Vue.filter('format', function (value, prefix, suffix) {if (!value) return '';value = value.toString();return prefix + "-" + value + "." + suffix;})let vm = new Vue({el: '#app',data: {filename: 'filters',suffix: 'js'},computed: { // 计算属性,多次调用,只计算一次},methods: { // 普通方法,多次调用,多次计算},filters: { // 过滤器}})
</script>
</body>
</html>

3、过滤器的串联

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.profile {}</style>
</head><body>
<div id="app"><h2>过滤器</h2><!--  输出结果:DLROW OLLEH  --><p>{{ message | uppercase | reverse }}</p>
</div><script src="VueJs/vue.js"></script>
<script>Vue.filter('uppercase', function (value) {if (!value) return '';value = value.toString();return value.toUpperCase();})Vue.filter('reverse', function (value) {if (!value) return '';value = value.toString();return value.split('').reverse().join('');})let vm = new Vue({el: '#app',data: {message: 'hello world'},computed: { // 计算属性,多次调用,只计算一次},methods: { // 普通方法,多次调用,多次计算},filters: { // 局部过滤器}})
</script>
</body>
</html>

Vue(3)之 过滤器相关推荐

  1. vue学习日志-过滤器

    一.过滤器 1.1 概述 (1)过滤器(Filters)提供了一种 执行文本转换的方法,比如说都转换成大写字母或者几乎做任何我们想做的事情. (2)过滤器既可以在 双花括号插值 中使用,也可以在 v- ...

  2. Vue中的过滤器(filter)

    一.Vue中的过滤器是什么 过滤器(filter)是输送介质管道上不可缺少的一种装置,大白话,就是把一些不必要的东西过滤掉,过滤器实质不改变原始数据,只是对数据进行加工处理后返回过滤后的数据再进行调用 ...

  3. Vue.js中过滤器(filter)的使用

    Vue.js 过滤器的基本使用(filter) vue中的过滤器分为两种:局部过滤器和全局过滤器.全局过滤器定义在vue类中,句柄过滤器定义在vue实例中. 1.定义无参全局过滤器 Vue.filte ...

  4. Vue中filters过滤器无效的原因

    Vue中filters过滤器无效的原因 如果你的过滤器内部需要用到循环 请不要使用map函数代替for循环或者是foreach循环 如图: 因为过滤器本身需要一个return 把结果返回出去 然而ma ...

  5. Vue中的过滤器学习

    在Vue中使用过滤器(Filters)来渲染数据是一种很有趣的方式.首先我们要知道,Vue中的过滤器不能替代Vue中的methods.computed或者watch,因为过滤器不改变真正的data,而 ...

  6. 04、Vue.js---自定义过滤器

    2019独角兽企业重金招聘Python工程师标准>>> 自定义过滤器的关键字是 filter.     官网描述:Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤 ...

  7. 【Vue】全局过滤器和局部过滤器

    Vue.js 允许自定义过滤器,可用作一些常见的文本格式化.过滤器可以用在两个地方:mustache 插值和 v-bind 表达式,被添加在 JavaScript 表达式的尾部,由管道符 (" ...

  8. vue学习笔记(一) ---- vue指令(过滤器)

    一.什么是过滤器 官方文档:https://cn.vuejs.org/v2/guide/filters.html 二.过滤器的使用 没有使用过滤器之前: <div id="app&qu ...

  9. Vue中的过滤器(管道)

    过滤器:将指定的数据,按照一套流程过滤加工,最后返回一个过滤之后的值 注册局部过滤器 将过滤器写在filters配置项中的是局部过滤器,只供该vue匹配的容器使用 new Vue({el: '#roo ...

  10. 【前端——vue】:过滤器、侦听器、计算属性、vue-cli、vue组件、动态组件、插槽、自定义属性、路由

     一.过滤器 1.过滤器Filters(只能在vue2中使用) p标签里面看到的是后面函数的返回值,message相当于作为参数传给后面.竖线代表要调用过滤器. 过滤器函数必须定义到filters节点 ...

最新文章

  1. 中国肠道大会 | 日程及嘉宾
  2. 详解:开通IIS的FTP服务器并添加多个FTP用户
  3. Python函数封装:利用正则表达式compile、findall对多组关键词进行模糊查询并返回统计个数,findall截取两个指定符号之间的内容
  4. Java基础篇:回调机制详解
  5. “通用卷无法停止”解决方法
  6. 推荐系统算法总结(三)——FM与DNN DeepFM
  7. ConcurrentHashMap 解读
  8. .net 垃圾回收学习[How To: Use CLR Profiler][翻译学习]【2】
  9. react学习(40)----react中的jsx简介
  10. linux终端友好,Linux 中一种友好的 find 替代工具
  11. 并查集——食物链(poj1182)
  12. 60.Linux/Unix 系统编程手册(下) -- SOCKET: 服务器设计
  13. 页面转发后文本显示???_无代码软件开发中超文本显示设计
  14. R语言医学数据分析实战(一)数据结构与获取数据集
  15. 2019计算机保研 中科院信工所夏令营+中科院软件所九推记录
  16. COM ---- Inside COM Note
  17. LXDE桌面系统设置快捷键
  18. 软件测试零基础入门好学吗?
  19. 微信小程序创建节点选择器获取宽高wx.createSelectorQuery
  20. 在一个字符串中搜索某个特定的字符值

热门文章

  1. A1490. osu!(乔明达)|概率与期望|卡常|矩阵
  2. [日推荐]『拉了吗』出门必备
  3. java 启动方式 java -jar xx.jar
  4. post_thumbnail_html,wordpress get_the_post_thumbnail()不显示任何内容
  5. IDEA插件-----Squaretest(自动生成单元测试)
  6. 人生要懂得放弃的八个心理负担,你已经放弃了吗?
  7. 华为任正非老爷子的一番话,听得我不寒而栗
  8. uniapp微信小程序获取屏幕宽高
  9. 如何制作电子印章?电脑做印章最简单的方法是什么?
  10. 天涯明月刀手游服务器版本信息,天涯明月刀手游合服计划公告