理解过滤器
- 功能: 对要显示的数据进行特定格式化后再显示
- 注意: 并没有改变原本的数据, 只是产生新的对应的数据
定义和使用过滤器
- 定义过滤器
Vue.filter(filterName, function(value[,arg1,arg2,...]){
// 进行一定的数据处理
return newValue
})
- 使用过滤器
<div>{{myData | filterName}}</div>
<div>{{myData | filterName(arg)}}</div>
应用实例 之 显示格式化的日期时间
如要求显示日期的三种格式:
- 2020-01-22 11:46:39
- 2020-01-22
- 11:46:39
这里涉及到一个库 monent.js>>>>
此库的引用看这里(BootCDN)>>>
(然后是倒数第二个或倒数第一个的链接粘到代码中即可)
完整实现代码
<!--需求:对当前时间进行指定格式显示 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue的生命周期</title>
<style>
</style>
</head>
<body>
<div id="test">
<h2>显示格式化的日期时间</h2>
<p>{{date}}</p>
<!--使用过滤器显示时间 -->
<p>完整版:{{date | dateString}}</p> <!--数值 | 过滤器名字(如果传格式就会按照指定格式进行格式化)-->
<p>年 月 日:{{date | dateString('YYYY-MM-DD')}}</p>
<p>时 分 秒:{{date | dateString('HH:mm:ss')}}</p>
</div>
<script type="text/javascript" src="../js/vue.js"></script>
<script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.24.0/moment.js"></script>
<script type="text/javascript">
//自定义过滤器,Vue函数对象的角色
Vue.filter('dateString',function (value,format) { //value:将要被格式化处理的值,即下面的date值
return moment(value).format(format || 'YYYY-MM-DD HH:mm:ss') //24小时制:H;12小时制:h.
}) //如果传入format则用format,否则用后面的格式化形式
new Vue({
el:'#test',
data:{
date:new Date()
}
})
</script>
</body>
</html>
PS:对传入的format和’YYYY-MM-DD HH:mm:ss’格式的互斥显示的另一种写法:
//自定义过滤器,Vue函数对象的角色
Vue.filter('dateString',function (value,format='YYYY-MM-DD HH:mm:ss') { //value:将要被格式化处理的值,即下面的date值
return moment(value).format(format) //24小时制:H;12小时制:h.
})
(有点惊奇,这不是在C或java中都是赋值语句吗?看来前端和后端语法不一样)