一、过滤器
过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中。
定义过滤器的方式有两种。
1-1、全局过滤器
<body>
<div id="d1">
<p>{
{num}}</p>
<p>{
{num|a}}</p>
</div>
<script >
Vue.filter('a',function (num01) {
return num01.toFixed(2)
})
var vm=new Vue({
el:"#d1",
data:{
num:6.66231
},
methods:{
}
})
</script>
注意一般全局过滤器写一个单独的js文件,导入即可
![9224b4a4cee6fd2863667e2df2f8d7a1.png](https://img-blog.csdnimg.cn/img_convert/9224b4a4cee6fd2863667e2df2f8d7a1.png)
1-2、局部过滤器
<div id="d1">
<p>{
{num}}</p>
<p>{
{num|a}}</p>
</div>
<script >
var vm=new Vue({
el:"#d1",
data:{
num:6.66231
},
methods:{
},
filters:{
a(num01){
return num01.toFixed(2)
}
}
})
</script>
</body>
![9224b4a4cee6fd2863667e2df2f8d7a1.png](https://img-blog.csdnimg.cn/img_convert/9224b4a4cee6fd2863667e2df2f8d7a1.png)
二、计算属性
我们之前学习过字符串反转,如果直接把反转的代码写在元素中,则会使得其他同事在开发时时不易发现数据被调整了,所以vue提供了一个计算属性(computed),可以让我们把调整data数据的代码存在在该属性中。
<body>
<div id="d1">
<input type="text" v-model="num1">+
<input type="text" v-model="num2">=<span>{
{total}}</span>
</div>
<script >
var vm=new Vue({
el:"#d1",
data:{
num1:0,
num2:0
},
methods:{
},
computed:{
total(){
return this.num1+this.num2
}
}
})
</script>
</body>
![0e28ceb79a6f522c8539637db8a12afa.png](https://img-blog.csdnimg.cn/img_convert/0e28ceb79a6f522c8539637db8a12afa.png)
但是这种是字符串拼接,不是计算:
修正:
computed:{
total(){
return parseFloat(this.num1)+parseFloat(this.num2)
}
}
![ea733de05cd070490a7e1ff385016535.png](https://img-blog.csdnimg.cn/img_convert/ea733de05cd070490a7e1ff385016535.png)
三、监听属性
侦听属性,可以帮助我们侦听data某个数据的变化,从而做相应的自定义操作。
侦听属性是一个对象,它的键是要监听的对象或者变量,值一般是函数,当侦听的data数据发生变化时,会自定执行的对应函数,这个函数在被调用时,vue会传入两个形参,第一个是变化前的数据值,第二个是变化后的数据值。
无限点赞:
<div id="d1">
<button @click="num++">赞{
{num