【vue过滤器 filter / filters 】

参考链接–官网文档
参考链接2

过滤器的定义?

vue filters过滤器是vue中用来处理文本格式化的工具。可以对数据进行处理,规范项目的一些数据的特定格式。

过滤器的原理?

Vue的过滤器的实现参考了linux的shell命令的管道的实现原理,即上一个命令的输出是下一个命令的输入,

过滤器的作用?

作用是处理一些常见的文本格式化,

过滤器的使用场景 / 使用方法?

使用方法:
过滤器可以用在两个地方:
 1. 双花括号插值
 2. v-bind表达式。
/*  在双花括号中 */
{{ message | capitalize }}

/* 在 `v-bind` 中 */
<div v-bind:id="rawId | formatId"></div>
1,用户可以在组件中自定义过滤器。局部过滤器
var vm = new Vue({
  el:"#app",
  data:{
    totalMoney:0,
    productList:[]
  },
  filters:{
    formatMoney:function(value){
      return "¥"+value.toFixed(2)
    }
  },
  ...
}
 <div class="cart-tab-2">
 //应用自定义局部过滤器
      <div class="item-price">{{item.productPrice | formatMoney}}</div>
 </div>
2,或者在创建Vue实例之前全局定义过滤器:
Vue.filter("money",function(value,type){
  return "¥"+value.toFixed(2)+type;
})

new Vue({
  // ...
})
<div class="cart-tab-4">
//应用全局过滤器
     <div class="item-price-total">{{item.productPrice*item.productQuantity | money('元')}}</div>
</div>

当全局过滤器和局部过滤器重名时,会采用局部过滤器。

使用场景:

1,处理一些文本格式化。比如规定日期格式,规定价格格式【处理数据添加美元符号等】。

	例如一个购物车界面,读取json文件获取购物车内物品的相关信息。对于单价的变量,读取后需要加美元符号或者加小数点,可以使用过滤器

2,封装项目中的一些全局方法。项目中的一些全局方法,比如对数据作四舍五入取值的方法,比如遍历数据等一些工具方法,常常在许多地方都需要使用。需要将这些方法作为全局方法。可以通过vue.prototype , mixins 在main.js文件中封装全局方法。但维护性和可读性差。可以通过全局定义过滤器来达到同样的效果。

知识强化。使用过滤器的 优缺点 / 注意事项,防踩坑

过滤器可以串联:

1,

{{ message | filterA | filterB }}

如上所示,filterA被定义为接收单个参数的过滤器函数,表达式message的值将作为参数传入到函数中。然后继续调用同样被定义为接收单个参数的过滤器filterB,将filterA的结果传递到filterB中。

2,

{{ message | filterA('arg1', arg2) }}

如上所示,filterA被定义为接收三个参数的过滤器函数。其中message的值作为第一个参数,普通字符串’arg1’作为第二个参数,表达式arg2的值作为第三个参数。

知识扩展:

1,vue.prototype

在main.js入口文件中将方法挂载到vue.prototype实现全局封装,如我们封装一个获取时间戳的函数。
Vue.prototype.now = Date.now || function () {  
    return new Date().getTime();  
};  
在.vue文件中通过this.调用
<script>  
    export default {   
        mounted(){  
            console.log('now:' + this.now());  
        },  
    }  
</script>  

2, mixins

在main.js文件中注入。

mixins的全局注入规则:如果组件中没有这个getTime方法,那么就会在页面中注入这个方法。
Vue.mixin({
  data() {},
  methods: {
    getTime() {  
      return new Date().getTime();
    }
  } 
});
new App({
  el: '#app'
  // ...
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值