计算属性和侦听器
计算属性
语义解决模板中的负责逻辑计算,以及缓存复用。
//例如两个元素使用相同的数据绑定逻辑,此时可读性差,并且同样的东西需要计算两次。<li v-pre>{{ todo > 1 ? 10 : 20}}</li><li v-pre>{{ todo > 1 ? 10 : 20}}</li>
关键点计算属性只有在其内部逻辑依赖的data发生改变时,才会再次调用。
关键点计算属性会有缓存,如果值没有改变,多次调用只会计算一次。如果你不希望有缓存,请用方法来替代。
<div class="vue">{{ fullName }}</div><script>var app = new Vue({el: ".vue",data: {firstName: 'chen',lastName: 'qian',},computed: {fullName: {get(){return this.firstName + this.lastName;},set(value){this.firstName = value.split(' ')[0];this.lastName = value.split(' ')[1];}}}});</script>
侦听器
语义关注点在数据更新:给数据增加侦听器,当数据更新时需要完成什么样的逻辑。
不同点
- computed是为了抽离模板语法中的复杂逻辑。
- watch是为了监听data的更新,并执行相应的逻辑,比如:将更改的数据上传到服务器。
