<body>
<script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
<div id='myApp'>
<div>有一些数据直接渲染不符合要求: {{time}}</div>
<div>1, 可以使用内置函数处理数据: {{time.toLocaleString()}}</div>
<div>2, 可以调用自定义函数处理数据: {{timeFormat(time)}} </div>
<div>3, 可以使用vue过滤器处理数据: {{time | timeFilter1}}</div>
<h3>过滤器函数和普通函数的区别: </h3>
<ol>
<li>过滤器函数定义在filters字段中,普通函数定义在methods字段中</li>
<li>普通函数直接调用, 过滤器掉用: { {数据 | 过滤器} }</li>
<li>过滤器可以连续调用, {{time | timeFilter1 | timeFilter2}}</li>
<li>过滤器调用时不需要传参, 参数默认是|前的值, 如果加参数, 这个参数会传入第二个形参处{{time | timeFilter1("郑州")}}</li>
</ol>
</div>
<script>
new Vue({
el: '#myApp',
data: {
time: new Date()
},
// filters 字段用于定义过滤器, 里边放一些函数,用于数据处理
filters:{
timeFilter1(time, city){
console.log(city)
return `${time.getFullYear()}年 ${time.getMonth()+1}月 ${time.getDate()}日`
},
timeFilter2(time){
return "北京时间: " + time
}
},
methods: {
timeFormat(time){
return `${time.getFullYear()}年 ${time.getMonth()+1}月 ${time.getDate()}日`
}
}
})
</script>
</body>