16.Vue过滤器
1.介绍
Vue过滤器filters可以对数据进行过滤,实际上就是一个函数
在修饰符{{}}中使用|可以对数据进行过滤
格式为{{item | filters}}
2.举例
假设我们有这样一个需求:要按照一定格式并且实时输出时间
在编写之前我们介绍一款很好用的插件
Dayjs,可以将输入的时间戳格式化,而且有非常多的格式化方式,非常方便
[Dayjs](Format · Day.js (gitee.io))
我们利用Vue中的filter实现这个需求
注意使用dayjs插件需要先下载然后引入
<div id="app">
{{newDate | formatTime}}
</div>
const vm = new Vue({
el:'#app',
data:{
newDate:new Date()
},
mounted() {
setInterval(() => {
vm.newDate = new Date(); // 修改日期数据
}, 1000);
},
filters:{
formatTime(val){
return dayjs(val).format('YYYY:MM:DD ss')
}
}
})
我们定义一个newDate属性,并给它设置一个初始值,防止刚进入页面时显示异常
我们通过mounted挂载时间
mounted在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
在里面设置定时函数,每经过一秒钟,将newData重新赋值为当前时间戳
然后我们通过在修饰符中对数据进行过滤
formatTime函数中的val就是newData的值(当前为时间戳),通过dayjs格式化将新的数据传递给newDate并且输出
这就实现了一个动态输出时间的需求