vue2.0过滤器
最近一阶段,项目上比较清闲,有了更多的时间可以研究一下vue了。
这里记录一下关于vue2.0过滤器的学习。
vue2.0删除了所有的框架自带的过滤器,也就是说,如果你在vue2.0当中想用过滤器,那么只能自定义。
自定义过滤器分为全局过滤器和组件内部过滤器。
其实本质上没什么区别,只是定义的方式略有细微差别。
使用方式:
vue2.0官方文档中,明确说明:过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。
<!-- 在双花括号中 -->
{{ arr | sum }} <!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>
定义方式:
1、在组件当中定义过滤器
与methods,data等数据同级filters内部定义你需要使用的过滤器就可以。表现形式为函数。
这里以对数组arr求和为例。
filters:{
sum(val){
return val.reduce((dep, item)=>{
return dep + item;
}, 0)
}
},
过滤器sum的第一个形参默认为需要过滤的内容,在页面当中使用的时候,就相当于“|”之前的数据,这里就相当于数据arr,至于数组方法reduce,可以参考Array.prototype.reduce()。
事实上,过滤器还可以传入多个参数,例如对当前数组求和之后,再加上一个10。
那么在调用时,也需要同步修改(为了方便控制,可以在data数据内定义一个add:10):
{{ arr | sum(add) }}
如果不想在data中定义,也可以直接传入
{{ arr | sum(10) }}
过滤器修改只需要多加一个形参就可以
filters:{
sum(value, add){
return value.reduce((dep, item) => {
return dep + item;
}, add);
}
},
既然可以多传一个参数,那么必然也可以传入更多的参数。
不过一般情况下,也不建议传入太多参数,毕竟没必要通过过滤器来实现比较复杂的逻辑。
至于全局定义组件,也就是把刚刚定义的局部组件过滤器搬到main.js(使用脚手架vue-cli生成的vue项目中)中
Vue.filter('sum', function(value, add) {
let num = value.reduce((dep, item) => {
return dep + item;
}, 0)
return num + add;
})
除了定义方式略有区别之外,没有其他任何区别。
vue2.0过滤器的更多相关文章
- vue2.0自定义指令
前面一片文章说了vue2.0过滤器,其实自定义指令跟过滤器非常相似,单就定义方式而言,其与过滤器完全一致,分为局部指令,和全局指令.不过就是filter改为directive的区别. 过滤器一般用于对 ...
- Vue2.0实现1.0的搜索过滤器功能
Vue2.0删除了很多1.0的比较实用的过滤器,如filterBy,orderBy.官方文档给了通过计算属性实现1.0搜索过滤器功能,自己又加入了大小写通用检索功能,比较简单,学一下. <bod ...
- Vue2.0的变化 ,组件模板,生命周期,循环,自定义键盘指令,过滤器
组件模板: 之前: <template> <h3>我是组件</h3><strong>我是加粗标签</strong> </templat ...
- Vue2.0如何自定义时间过滤器
我们知道Vue2.0开始不再支持自带的过滤器,需要我们自己去自定义过滤器,方法如下: 我们可以自己定义一个时间过滤器,在此引用了一个日期处理类库(Moment.js)可以很快的实现 ...
- vue2.0有哪些变化
vue2.0之后有哪些变化: 1.每个组件模板template,不再支持片段代码 之前: <template> <h3>vue-router+vue-loader</h3 ...
- 基于vue2.0+vuex+localStorage开发的本地记事本
本文采用vue2.0+vuex+localStorage+sass+webpack,实现一个本地存储的记事本.兼容PC端和移动端.在线预览地址:DEMO github地址:https://github ...
- 初学VUE2.0
初学VUE2.0 (个人笔记,写完后发现好乱....下期使用markdown书写.) 概述 webstorm添加对VUE的支持 http://www.jianshu.com/p/142dae4f8b5 ...
- 《Vue2.0 实践揭秘》终于出版啦!
不知不觉间在园子开博都两年多了,最近一些园友问最近去哪了为何都没有新的文章了.最近确实发生了很多的事,一是忙工作二就是忙着写书.这还得多些园子的小编,自两年前发表的"架构师修炼"系 ...
- vue1.0和vue2.0的区别(二)
这篇我们继续之前的vue1.0和vue2.0的区别(一)继续说 四.循环 学过vue的同学应该知道vue1.0是不能添加重复数据的,否则它会报错,想让它重复添加也不是不可以,不过需要定义别的东西 而v ...
随机推荐
- C# 抽象类和密闭方法
抽象类abstract: 1.抽象类只存在一个目的就是被继承:2.抽象类不能够实例化,只能够被继承:3.抽象类可以包含抽象成员和普通成员,以及他们的任意组合:4.抽象类的抽象成员在派生类中需要使用ov ...
- 一些常用的排序算法(C版)
1. 直接插入排序(稳定排序) 简单的说就是将序列分为有序序列和无序序列.每一趟排序都是将无序序列的第一个元素插入有序序列中.R[1… i-1] <- R[i…n] , 每次取R[i]插入到R[ ...
- ES Terms 聚合数据不确定性
Elasticsearch是一个分布式的搜索引擎,每个索引都可以有多个分片,用来将一份大索引的数据切分成多个小的物理索引,解决单个索引数据量过大导致的性能问题,另外每个shard还可以配置多个副本,来 ...
- Speeding Up The Traveling Salesman Using Dynamic Programming
Copied From:https://medium.com/basecs/speeding-up-the-traveling-salesman-using-dynamic-programming-b ...
- Flutter at Google I/O 2018
Flutter at Google I/O 2018 如何观看 https://flutterchina.club/ 极速构建漂亮的原生应用 Flutter是谷歌的移动UI框架,可以快速在iOS和 ...
- java.util.ConcurrentModificationException的解决办法
今天在使用iterator.hasNext()操作迭代器的时候,当迭代的对象发生改变,比如插入了新数据,或者有数据被删除. 编译器报出了以下异常: Exception in thread " ...
- 【转】SOA架构设计经验分享—架构、职责、数据一致性
1.背景介绍 最近一段时间都在做系统分析和设计工作,面对的业务是典型的重量级企业应用方向.突然发现很多以往觉得很简单的问题变得没有想象的那么容易,最大的问题就 是职责如何分配.论系统架 ...
- hasClass() removeClass() addClass()
//检查第元素是否包含 "intro" 类 $("button").click(function(){ alert($("p:first") ...
- 杂项:TMT(数字媒体产业)
ylbtech-杂项:TMT(数字媒体产业) TMT(Technology,Media,Telecom),是科技.媒体和通信三个英文单词的缩写的第一个字头,整合在一起.含义实际是未来(互联网)科技.媒 ...
- android手机截屏、录屏
1. 手动截屏,通过其他第三方软件发送截图,或者从手机取出截图 2. 使用命令截图,将截图保存到手机,再拉取到电脑 #!/bin/sh #运行 sh screenshot name picName=$ ...