Vue2过滤器

Filters


于Vue3.0中已弃用,只能应用于Vue2.x

因为用methods方法也能直接处理 函数的返回值可以直接显示在页面的差值表达式上

过滤器用于文本的格式化,可以用在插值表达式和v-bind属性绑定

过滤器应该添加在js表达式尾部,由’管道符’进行调用

  <!-- 插值表达式中通过管道符调用capitalize过滤器,对message值处理 -->
  <p>{{ message | capitalize }}</p>
  <!-- v-bind中通过管道符调用formatId过滤器,对rawId值处理 -->
  <div v-bind:id="rawId | formatId"></div>

过滤器函数需要定义在Vue实例中

var app = new Vue({
  el: 'p',
  data: {
    mess:''
  },
  filters:{
	capitalize(val){
		//code
		return
	}
  }
})

过滤器本质上是函数,而且过滤器函数中的第一个形参永远都是管道符前面的值

过滤器中一定要有一个返回值,调用过滤器函数后插值表达式内容本质上就是过滤器函数的返回值



私有过滤器

定义在filters节点下的过滤器函数只能在挂载元素内部使用,其他Vue实例不用调用,因此称为私有过滤器

全局过滤器

如果需要多个Vue实例之间共享过滤器,可以定义全局过滤器

Vue.filter('capitalize', (str) => {
  return str.charAt(0).toUpperCase()+str.slice(1)
})

如果全局过滤器和私有过滤器的名字一致,此时就近原则调用私有过滤器


过滤器传参

因为过滤器也是函数因此可以接收参数

  <!-- arg1和arg2是传递给filterA的参数 -->
  <p>{{ message | filterA(arg1, arg2) }}</p>
//过滤器需要接收管道符前面的变量所以第一个参数永远是管道符前待处理的值
//第二个参数开始,才是调用过滤器传递来的arg1,arg2
Vue.filter('filterA', (msg, arg1, arg2) => {
  //code
})

串联过滤器

连续调用多个过滤器

  <!-- 把message的值交给filterA处理 -->
  <!-- 把filterA处理的结果交给filterB处理 -->
  <!-- 最终把filterB处理的结果渲染到页面上 -->
  <p>{{ message | filterA | filterB }}</p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在2中,过滤器(filters)是一种用于格式化或处理数据的功能。它通过在模板中使用管道符(|)来对数据进行处理,并返回处理后的结果。过滤器可以用于格式化日期、数字、文本等不同类型的数据。[2] 然而,在Vue3中,过滤器的概念被废弃了。Vue3不再支持过滤器的写法和使用。官方文档中明确表示,过滤器被移除的原因是由于其引入了一些不必要的复杂性和性能问题。相反,Vue3鼓励使用计算属性(computed properties)或方法(methods)来处理数据的格式化和处理需求。这样可以更加灵活地控制数据的处理方式,并且提高了代码的可读性和可维护性。因此,Vue3中的开发者需要使用计算属性或方法来替代过滤器的功能。 总结来说,Vue2中的过滤器可以方便地对数据进行格式化和处理,而在Vue3中,过滤器被废弃,建议使用计算属性或方法来取代过滤器的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue3不支持Filters过滤器的问题](https://download.csdn.net/download/weixin_38500630/12923108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [vue 内置过滤器的使用总结(附加自定义过滤器)](https://download.csdn.net/download/weixin_38720322/13585121)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue2过滤器模糊查询方法](https://download.csdn.net/download/weixin_38655780/12952147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Raccom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值