Vue的过滤器的使用是在{{}}插值的尾部添加一个管道符 |
过滤的规则是自己定义的,通过给Vue实例添加选项filters来设置
通过过滤器对时间进行格式化从而实时显示时间
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Vue 过滤器的简单使用---实时显示格式化时间</title>
</head>
<body>
<div id="app">
{{date | formatDate}}
</div>
<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src=" href='https://cdn.jsdelivr.net/npm/vue/dist/vue.js">https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
//此函数的作用是在月份、日期、小时等小于10时在前面补0
var padDate = function(value){
return value<10 ? '0'+value : value;
};
var app = new Vue({
el:'#app',
data:{
date:new Date()
},
filters:{
//这里的value参数就是要过滤的数据
formatDate : function (value) {
var date = new Date(value);
var year = date.getFullYear();
var month = padDate(date.getMonth());
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是在el挂载到实例上后调用,一般第一个业务逻辑会在这里开启
mounted:function(){
var _this = this; //声明一个变量指向Vue实例this,保证作用域一致
this.timer = setInterval(function(){
//设置定时器,每秒执行一次function函数,
//函数是获取当前时间并给date变量赋值(每秒赋值一次)
_this.date = new Date(); //修改数据date
},1000);
},
beforeDestroy:function(){
if(this.timer){
clearInterval(this.timer); //在Vue实例销毁前,清除定时器
}
}
})
</script>
</body>
</html>
过滤器也可以串联:
{{ message | filter1 | filter2 }}
过滤器也可以接受参数:
{{ message | filter1 ('arg1','arg2')}}
这里的字符串arg1 和 arg2 分别传给过滤器的第二个和第三个参数,第一个是数据本身