[DAY21]跟 Vue.js 认识的30天 - Vue 过滤器(`filter`)

这是一个在 Vue 3 被拿掉的功能,但还是来了解一下。

filter 用途及用法

filter 是让双花括号({{}})或 v-bind 表达式中的值通过 | 再来让 filter 作用,写法如下:

<!-- 在 Mustache 中 -->
{{ message | filterName }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="searchText | filterName"></div>

messagesearchText 都会被 | 後的 filter 作用。

// 全域
//value指的是双花括号(`{{}}`)或 `v-bind` 表达式中的值
Vue.filter('filterName',value=>{
  //...
})

//区域
new Vue({
  filters:{
    filterName(value){
      //...
    }
  }
})

透过上面的方法创建 filter ,来让双花括号({{}})或 v-bind 表达式中的值被代入该 filter 後,返回新的值。

被代入 filter 的参数

多个 filter

<p>message : {{ message | uppercase | filterName(1,5) }}</p>

<script>
Vue.filter('uppercase',value=>{
  return value.toUpperCase()
})
Vue.filter('filterName',(value,param1,param2)=>{
  return value.slice(param1,param2)
})
</script>

message 会先被代入 uppercase() 执行,得到 A 值,再将得到的 A 值代入 filterName() 里去执行,最後得到并显示 B 值。

代入多个引数

<p>sliceMsg : {{ sliceMsg | filterName(arg1,arg2) }}</p>

<script>
Vue.filter('filterName',(value,param1,param2)=>{
  return value.slice(param1,param2)
})
</script>

filterName 本身是个函数,所以可以有其他参数,但必须注意 sliceMsg 会作为 filterName 的第一个引数(value),而 arg1arg2 分别为 filterName 的第二个跟第三个引数来执行。

filter 感觉比较简单,就到这结束了!

Demo:DAY21 | 跟 Vue.js 认识的30天 - Vue 过滤器(filter)

参考资料

Vue.js - 过滤器


<<:  [DAY20]跟 Vue.js 认识的30天 - Vue 插件(Plugin)

>>:  React和DOM的那些事-节点更新

[Day33] 一条龙总结

本系列文章从 Web API, 架设云端 VM,资料库操作到前端 app,一步一步做出一个虽然很阳春...

Day 13 : 案例分享(4.2) 签核与费用模组 - 签核模组 Base Tier Validation

案例说明及适用场景 即然都以全WEB了,当然一定会有签核的需求 Base Tier Validati...

D12 - 如何用 Apps Script 寄出客制化的表单并搜集分散在 Google Sheet 中的回应?(二)大幅度客制你的 Google Form

今天的目标 很多时候我们会需要搜集些不同的资料。像是 Marketing 在做大规模但针对不同组织的...

IOS、Python自学心得30天 Day-13 模组训练改善-5

前言: 藉由训练过程中的检查点纪录,可以知道此模型的训练次数,不过若不是特别需要,平常可以注解掉,让...

DAY 22:Decorator Pattern,巧妙的在方法上增加新功能

什麽是 Decorator Pattern? 不以静态继承而是用动态组合的方式增加功能 UML 图如...