Vue中的computed和watch有什么区别?

computed和watch都是用于监听数据的变化,但它们有一些区别。computed是基于它的依赖进行缓存的,只有当依赖的数据发生变化时,才会重新计算,而不是每次访问时都重新计算。watch是观察一个特定的数据,并在数据发生变化时执行回调函数。它更适合处理一个数据变化时需要执行异步或开销较大的操作。代码讲解

<div id="app">  <input v-model="message" placeholder="输入一些文字">  <p>你输入的文字是:{{ message }}</p>  <p>计算属性:{{ reversedMessage }}</p></div><script>new Vue({  el: '#app',  data: {    message: ''  },  computed: {    reversedMessage() {      return this.message.split('').reverse().join('')    }  },  watch: {    message(newValue, oldValue) {      console.log(`message 发生变化:${oldValue} → ${newValue}`)    }  }})</script>

在上述示例中,我们定义了一个计算属性reversedMessage,用于将message的内容进行反转。当用户输入文字时,message会发生变化,reversedMessage将重新计算并显示。同时,我们使用watch来观察message的变化并打印出变化的值。

发表评论