Vue 2.x – 过滤器
定义
对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。
语法
1.注册过滤器:Vue.filter(name,callback)
或 new Vue{filters:{}}
2.使用过滤器:{{ xxx | 过滤器名}}
或 v-bind:属性 = "xxx | 过滤器名"
注意
1.过滤器也可以接收额外参数、多个过滤器也可以串联
2.并没有改变原本的数据, 是产生新的对应的数据
示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- 引入Vue -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/dayjs/1.10.6/dayjs.min.js"></script>
</head>
<body>
<div id="root">
<h2>显示格式化后的时间</h2>
<h3>现在是:{{time}}</h3>
<!-- 计算属性实现 -->
<h3>格式化后的时间:{{fmtTime}}</h3>
<!-- methods实现 -->
<h3>格式化后的时间:{{getFmtTime()}}</h3>
<!-- 过滤器实现 -->
<h3>格式化后的时间:{{time | timeFormater}}</h3>
<h3>格式化后的时间:{{time | timeFormater('YYYY-MM-DD') | mySlice}}</h3>
<h3 :x='msg | mySlice'>你好,云淡风轻</h3>
</div>
<div id="root2">
<h2>{{msg | mySlice}}</h2>
</div>
<script>
// 注册全局过滤器,要在new Vue之前
Vue.filter('mySlice', function (value) {
return value.slice(0, 4)
})
new Vue({
el: '#root',
data: {
time: Date.now(),
msg: 'hello'
},
computed: {
fmtTime() {
return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss')
}
},
methods: {
getFmtTime() {
return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss')
}
},
// 局部过滤器
filters: {
timeFormater(value, str = 'YYYY-MM-DD HH:mm:ss') {
return dayjs(value).format(str)
},
mySlice(value) {
return value.slice(0, 4)
}
}
})
new Vue({
el: '#root2',
data: {
msg: "hello,你好"
}
})
</script>
</body>
</html>
版权声明:
作者:Ne-21
链接:https://blog.gocos.cn/archives/112.html
来源:云淡风轻
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Vue 2.x – 过滤器
定义
对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。
语法
1.注册过滤器:Vue.filter(name,callback) 或 new Vue{filters:{}}
2.使用过……

共有 0 条评论