Vue 过滤器
在 {{}} 插值的尾部添加一个管道符号”|“,对数据进行过滤,经常用于格式化文本,如:字母全部大写,货币千位使用逗号分隔等。
过滤的规则是自定义的,通过在 Vue 实例添加 filters 选项来设置的。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例</title>
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app">
{{ date | formatDate }}
</div>
<script>
//在月份、日期、小时等,小于10时前面补0
var padDate = function (value) {
return value < 10 ? '0' + value : value
}
var app = new Vue({
el: '#app',
data: {
date: new Date()
},
filters: {
formatDate: function (value) {//这里的value 就是需要过滤的数据
var date = new Date(value)
var year = date.getFullYear()
var month = padDate(date.getMonth() + 1)
var day = padDate(date.getDate())
var hours = padDate(date.getHours())
var minutes = padDate(date.getMinutes())
var seconds = padDate(date.getSeconds())
//将整理好的数据返回出去
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
}
},
mounted: function () {
var _this = this//声明一个变量指向Vue实例this,保证作用域一致
this.timer = setInterval(function () {
_this.date = new Date()//修改数据date
}, 1000)
},
beforeDestroy: function () {
if (this.timer) {
clearInterval(this.timer)//在Vue实例销毁前,清除定时器
}
}
})
</script>
</body>
</html>