美文网首页Vue
vue filter 过滤器

vue filter 过滤器

作者: jasmine_6aa1 | 来源:发表于2020-03-12 13:24 被阅读0次

vue filter过滤器简单介绍一下,就是把一个数经过过滤器之后变换出来的另一种方式呈现,比如时间的格式化,或者添加一些装饰之类的等。

过滤器分为两种:一种全局过滤器;另一种是局部过滤器

1,全局过滤器

1,在 mian.js 中定义全局过滤器

Vue.filter('allFilter',function(val){
  return val + '我是全局过滤器'
})

2,在其他的页面中调用

<div>{{ value  | allFilter }}</div>
展示: image.png

注:如果过滤器定义的比较多时,我们可以单独建立一个文件,之后把这个文件引入到 main.js 中的即可

2,局部过滤器

1,在定义局部过滤器页面中定义

export default {
  props: ["dir"],
  data() {
    return { };
  },
 filters: {
    allFilter(val) {
      return val + "我是局部过滤器";
    }
  }
};

2,在其他的页面中调用

<div>{{ value  | allFilter }}</div>
展示: image.png

3,过滤器传参

注:如果是文字之类的,也可以用过滤器替换其中的一些词
案例是全局过滤器,局部过滤器同理

Vue.filter('msgformat',function( msg, value ){
//字符串  replace 方法,第一个参数,除了写一个 字符串之外,还可以定义一个正则,g修饰符表示全局匹配
    return msg.replace(/单纯/g, value )
})

页面中调用

<p>{{ msg | msgformat('美丽') }}</p>

export default {
  props: ["dir"],
  data() {
    return {// 把 msg 里面的 单纯 变为 美丽
        msg:'我是一个单纯的少女,单纯的我,傻傻地问,世界上谁才是最单纯的人'
     };
  },
}

展示:

image.png
注:过滤器可以传递多个参数
Vue.filter('msgformat',function( msg, value1,value2 ){
//字符串  replace 方法,第一个参数,除了写一个 字符串之外,还可以定义一个正则,g修饰符表示全局匹配
    return msg.replace(/单纯/g, value1+value2 )
})
<p>{{ msg | msgformat('美丽','123') }}</p>

展示:

image.png
过滤器还可以进行叠加使用
// 在main.js 定义两个全局过滤器
Vue.filter('allFilter',function(msg,value1,value2){
  return msg.replace(/单纯/g, value1+value2 )
})

Vue.filter('allFilter2',function(msg,value1){
  return value1+ '!!!'
})

// 页面中调用
<div>{{ msg | allFilter('美丽','123') | allFilter2(msg)}}</div>

同理,局部过滤器也是同样的方法

以上就是过滤器的用法
补充:时间格式化

Vue.filter('dateformat', function (datestr, pattern = '') {
    //根据给的时间符串,得到特定的时间
    var dt = new Date(datestr)
    //  yyyy-mm-dd
    var y = dt.getFullYear()
    var m = dt.getMonth() + 1
    var d = dt.getDate()

    //return y + '-'+ m + '-' + 'd'
    //return 'yyyy+mm+dd'
    if (pattern.toLowerCase() === 'yyyy-mm-dd') {
      return `${y}-${m}-${d}`  //这个的引号是 反引号,在键盘1的左边
    } else {
      var hh = dt.getHours()
      var mm = dt.getMinutes()
      var ss = dt.getSeconds()

      return `$(y)-$(m)-$(d) $(hh):$(mm):$(ss)`
    }

  })

我写了一个简单的 vue 这方面的 dome,链接:https://github.com/zhongmin2011/vue-dome

相关文章

  • 9.自定义vue全局过滤器

    1.Vue.filter('过滤器名字',过滤器函数):

  • 王龙

    过滤器div: {{123.456|ab}} 1全局过滤器: Vue.filter('abc'...

  • [vue]--filters 过滤器

    vue 过滤器组件:用法 官方说明:filter地址

  • Vue(2)

    过滤器Filter Vue可以自定义过滤器,可以在{{message}}和v-bind两处使用。 Filter的定...

  • vue—filter 过滤器

    filter是个神奇的东西,css中有filter属性,js里也有filter属性,vue也用filter做过滤器...

  • css中filter属性

    filter是个神奇的东西,css中有filter属性,js里也有filter属性,vue也用filter做过滤器...

  • js中filter属性

    filter是个神奇的东西,css中有filter属性,js里也有filter属性,vue也用filter做过滤器...

  • 微信小程序 - wxs简单应用

    wxs 应用类似于 vue 的 filter 过滤器

  • Vue-04

    过滤器:对显示在页面上的数据进行筛选 全局过滤器 和Vue同级 Vue.filter(“过滤器名称”,func...

  • 3 Vue filter过滤器、样式动态改变 class、sty

    1、filter过滤器 ->全局Vue.filter();局部filters:{}; ->可连着调用多个 2、Vu...

网友评论

    本文标题:vue filter 过滤器

    本文链接:https://www.haomeiwen.com/subject/kfsadhtx.html