软件开发定制vue全局过滤器(filter)和局部过滤器(filters)

软件开发定制过滤器作用:

软件开发定制在不改变原始数据的情况下 软件开发定制格式化展示数据

软件开发定制对数据在模板中的表现过滤,符合预期,比如:数据是0和1,软件开发定制想要表现成对错、成功失败、软件开发定制数据需要过滤器来格式化,vue1.x版本有系统自带过滤器,.x之后完全需要自定义,没有自带过滤器,vue3也已经被砍掉了哟!

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

①插值表达式

<p> {{message |  formatId}} </p>

②v-bind属性绑定

<div :id="message |  formatId"> </div>

首先过滤器本质上是函数,所以过滤器中一定有返回值

通过,过滤器的第一个形参就可以获取到管道符前面代处理的那个值

1、局部定义(filters):

  1. 语法:
  2. new Vue({
  3. data:{},
  4. // 在data平级写filters
  5. filters:{
  6. 过滤器名字:函数(要过滤的原数据,参数){
  7. 过滤器的功能
  8. return 过滤的结果
  9. }
  10. }
  11. })

案例:把第一个字母过滤为大写

  1. <div id="app">
  2. <p>message的值为:{{message | tian }}</p>
  3. </div>
  4. <script>
  5. const vm = new Vue({
  6. el:"#app",
  7. data:{
  8. message: "helloTian"
  9. },
  10. //过滤器本质上是函数
  11. filters:{
  12. //注意: 过滤器函数形参中的val,永远是"管道符"前面的那个值
  13. tian(val){
  14. //charAt方法接受索引值,表示从字符串中把下标对应的字符,获取出来
  15. let first = val.charAt(0).toUpperCase()
  16. //slice方法,可以截取字符串,从指定下标往后截取
  17. let other = val.slice(1)
  18. return first+ other
  19. }
  20. }
  21. })
  22. // 最后的结果就展示HelloTian
  23. </script>

2、全局定义(filter)

  1. //Vue.filter()方法接收2个参数
  2. //第一个参数是全局过滤器的"名字"
  3. //第二个参数是全局过滤器的"处理函数"
  4. Vue.filter('过滤器名称',函数(要过滤的元数据,参数1,参数n){
  5. 过滤器的功能
  6. return 过滤的结果
  7. })
  8. //同样上面的过滤第一个字母大写
  9. <p>message的值为 {{message | capi }}</p>
  10. //str接收的就是管道符前面准备处理的值
  11. Vue.filter('capi',(str)=>{
  12. return str.chartAt(0).toUpperCase() + str.slice(1) + "~~~~"
  13. })

3、使用:

|  管道符​​​​​​​

案例: 可以全局过滤一个日期 {{item.data | dateFormat}}

在main.js 里

  1. Vue.filter('dateFormat', (originVal)=> {
  2. const dt = new Date(originVal)
  3. const y = dt.getFullYear()
  4. const m = (dt.getMonth() + 1 + '').padStart(2, '0')
  5. const d = (dt.getDate() + '').padStart(2, '0')
  6. const hh = (dt.getHours() + '').padStart(2, '0')
  7. const mm = (dt.getMinutes() + '').padStart(2, '0')
  8. const ss = (dt.getSeconds() + '').padStart(2, '0')
  9. return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
  10. })
  11. // 也可以用第三方库 dayjs 可以直接去看文档
  12. 首先就是下载完了引入再定义全局过滤器
  13. Vue.filter('dateFormat', (originVal)=> {
  14. //直接调用dayjs()得到的是当前时间哟
  15. //dayjs(给定的日期时间) 得到指定的日期时间
  16. const dtStr = dayjs(originVal).format('YYYY-MM-DD HH:mm:ss')
  17. return dtStr
  18. })

也可以定义局部的

  1. <template>
  2. <text>发表时间:{{item.add_time | formatDate}}</text>
  3. </template>
  4. <script>
  5. export default {
  6. filters: {
  7. formatDate (date) {
  8. const nDate = new Date(date)
  9. const year = nDate.getFullYear()
  10. const month = nDate.getMonth().toString().padStart(2,0)
  11. const day = nDate.getDay().toString().padStart(2,0)
  12. return year+'-'+month+'-'+day
  13. }
  14. }
  15. }
  16. </script>

注意:

过滤器本质是JavaScript函数,因此可以接受参数,格式如下:

<p> {{ message | tian( arg1,arg2 ) }} </p>

过滤器处理函数的形参列表中:

第一个参数 永远是"管道符"前面待处理的值msg
从第二个参数开始:才是调用过滤器时传递过来的 arg1 和 arg2 参数

Vue.filter('tian' , (msg , arg1, arg2 ) => {

               //过滤器的代码逻辑

})

如果全局过滤器和私有过滤器重命了,则会就近原则调用过滤器

当然也可以调多个过滤器  xxx | xxx | xxx |  

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发