美文网首页
Vue filter 过滤器使用详解

Vue filter 过滤器使用详解

作者: 用心为你 | 来源:发表于2020-04-17 10:12 被阅读0次

在Vue中当我们想要对一个数值进行处理时(改变格式、大小,类型,过滤等)可以使用filter

Vue过滤器有两种注册方式,全局、或者是局部注册

在一个组件内部想要使用一个不太常用的过滤器,可以局部注册

一、局部注册的过滤器可以直接在组件的选项中定义

export default {
    name: 'FilterDemo',
    /* 局部过滤器 */
    filters: {
      /* 格式化时间戳 */
      formatDate (val) {
        const date = new Date(val);
        const year = date.getFullYear();
        const month = date.getMonth() > 9 ? date.getMonth() + 1 : `0${date.getMonth() + 1}`;
        const day = date.getDate() > 9 ? date.getDate() + 1 : `0${date.getDate() + 1}`;
        return `${year}-${month}-${day}`;
        console.log(val);
      }
    },
    data () {
      return {
 
      }
    }
    
  }

2、如果是通用型的过滤器可以考虑全局注册,全局注册过滤器应该在创建 Vue 实例之前全局定义过滤器,可以在main.js中

import Vue from 'vue';
Vue.filter('formatTime', function (val) {
  const date = new Date(val);
  const hour = date.getHours();
  const minutes = date.getMinutes();
  const seconds = date.getSeconds();
  return `${hour} : ${minutes} : ${seconds}`;
});

3、当项目中多次需要使用过滤器时,可以新建filter文件,用以创建项目所需的过滤器

// 像这样

export function toThousandslsFilter(num) {
  return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ','))
}
 
export function dateFilter(num) {
  // 日期格式转换
}
 
export function lowerFilter(num) {
    // 大小写转换
}
 
// ...
 
// 可以将项目经常需要用到的过滤器全部定义在此

然后再main.js中全局注册,可以这样写

import * as filters from './filters' // global filters
 
// register global utility filters.
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})
注册完之后就

注册完之后就是调用了
过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示:

<!-- 在双花括号中 -->
{{ message | capitalize }}
 
<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>
 
 
// 用户从input输入的数据在回传到model之前也可以先处理
 <input type="text" v-model="message | change">
 
Vue.filter("change", {
   read: function (value) { // model -> view 在更新 `<input>` 元素之前格式化值
        return value;
   },
   write: function (newVal,oldVal) { // view -> model  在写回数据之前格式化值
        console.log("newVal:"+newVal); 
        console.log("oldVal:"+oldVal);
        return newVal;
   }
});

相关文章

  • Vue(2)

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

  • redis 的bloomfilter

    详解布隆过滤器的原理、使用场景和注意事项 布隆过滤计算器 布隆过滤器(Bloom Filter)详解 java实现...

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

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

  • 王龙

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

  • Vue filter 过滤器使用详解

    在Vue中当我们想要对一个数值进行处理时(改变格式、大小,类型,过滤等)可以使用filter Vue过滤器有两种注...

  • filter过滤器的使用

    应用场景:在数据渲染之前,使用filter过滤器,进行二次加工处理。注册时,Vue.filter('注册名', 处...

  • [vue]--filters 过滤器

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

  • Spring Boot使用过滤器Filter

    Spring Boot使用过滤器Filter >> 过滤器Filter介绍Filter也称为过滤器,是处于客户端与...

  • vue—filter 过滤器

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

  • css中filter属性

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

网友评论

      本文标题:Vue filter 过滤器使用详解

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