1. 过滤器
1.1 对过滤器的理解
定义:对要显示的数据进行特定格式化后在显示
适用:做一些简单的逻辑处理
特点:滤器可以做一些简单操作,并且没有改变原来的数据,产生新的对应的数据
1. 语法 : data | 过滤器
不传参数默认将data值传入,并且自动调用函数,函数可接收到value
传参数并不会覆盖掉第一个参数,第一个参数默认是value,第二个参数才是 传入的参数
2. 滤器可以以串联的形式
data | 过滤器 | 过滤器
执行的顺序是将data当做参数传入到第一个过滤器中,第一个过滤器处理完,返回的
值作为第二个过滤器的参数
1.2 全局过滤器:
Vue.filter(filterName, function(value){ return value.slice(0, 4); }) new Vue({ . .. ... })
1.3 局部过滤器:
new Vue{ filters:{ filterName(value){ return value.slice(0, 4); } } }
在html中使用过滤器
<div>{{ handledata | filtername }}</div> <div>{{ handledata | filtername(参数) }}</div>
1.4 过滤器的案例
<div id="root"> <h3>methods写的:{{time()}}</h3> <h3>computed写的:{{time1}}</h3> <h3>过滤器的写的:{{number | ftime("YYYY-MM-DD HH:mm:ss") | qjtime}}</h3> </div> <div id="root2"> <hr> <h3>{{name | qjtime}}</h3> </div> <script> Vue.config.productionTip = false // 全局过滤器 Vue.filter('qjtime', function (val) { return val.slice(0, 4) }) let vm = new Vue({ el: '#root', data: { number: Date.now() }, methods: { time() { return dayjs(this.number).format("YYYY年MM月DD日 HH:mm:ss") } }, computed: { time1: { get() { return dayjs(this.number).format("YYYY年MM月DD日 HH:mm:ss") } } }, // 局部过滤器 filters: { // 这是ES的语法表示如果有传参数就使用传进来的参数,如果没有传参就使用 ftime(val, str = "YYYY年MM月DD日 HH:mm:ss") { return dayjs(val).format(str) }, } }) new Vue({ el: "#root2", data: { number: Date.now(), name: '我是第二个Vue' } }) </script>
总结
以上就是今天要讲的内容,本文介绍了对过滤器的一些相关知识,希望对大家有所帮助!