- computed和watch的区别
1.computed能完成的功能,watch都可以完成。
2.watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作(setTimeout).
两个重要的小原则
1.所被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象。
2.所有不被vue所管理的函数(定时器的回调函数、ajax的回调函数等、promise的回调函数)最好写成箭头函数,这样this的指向才是vm或组件实例对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| <div id="root"> 姓<input type="text" v-model="firstName"><br /> 名<input type="text" v-model="lastName"><br /> 全名:<span>{{fullName}}</span> </div> <script> Vue.config.productionTip = false
const vm = new Vue({ data: { firstName: 'liu', lastName: 'muye', fullName:'liu-muye' }, methods: { }, computed: {
}
}) vm.$mount('#root'); vm.$watch('firstName',function(newValue,oldValue){ console.log('123'); setTimeout(() => { console.log(this); return this.fullName = newValue + '-' + this.firstName },1000) }) vm.$watch('lastName',function(newValue,oldValue){ console.log('123'); this.fullName = this.firstName + '-' + newValue
}) </script>
|
如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !