vue 中 computed 和 watch 的区别

在Vue中,computed和watch都是用于监听数据的变化,并且根据变化做出相应的反应。

computed是一个计算属性,它会根据依赖的数据的变化自动计算得出一个新的值,并且具有缓存的特性。当依赖的数据发生变化时,computed属性会重新计算,并且只有在依赖的数据发生变化时才会重新计算,否则会直接返回之前计算的结果。computed属性适用于依赖较少、计算量较大的情况。

以下是一个使用computed的例子:

javascript 复制代码
new Vue({
  data: {
    firstName: 'John',
    lastName: 'Doe'
  },
  computed: {
    fullName: function () {
      return this.firstName + ' ' + this.lastName;
    }
  }
})

在上面的例子中,fullName是一个computed属性,它依赖于firstName和lastName这两个data属性。当firstName或者lastName发生变化时,fullName会自动重新计算得出新的结果。

watch则是一个侦听器,它会监听指定的数据的变化,并且在数据发生变化时执行相应的回调函数。watch适用于需要在数据变化时执行异步或者复杂的操作的情况。

以下是一个使用watch的例子:

javascript 复制代码
new Vue({
  data: {
    name: 'John Doe'
  },
  watch: {
    name: function (newVal, oldVal) {
      console.log('name changed from ' + oldVal + ' to ' + newVal);
    }
  }
})

在上面的例子中,watch会监听name属性的变化。当name发生变化时,watch会执行相应的回调函数,打印出变化前后的值。

总结一下,computed是根据依赖的数据自动计算得出一个新的值,并且具有缓存的特性;而watch则是监听指定的数据的变化,并在数据发生变化时执行相应的操作。

相关推荐
爱勇宝7 分钟前
客户只想看个页面,我却做了一个静态演示发布系统
前端·javascript·后端
渔夫正在掘金8 分钟前
告别构建时代:为什么 AI 编程浪潮正让 Vue 与 React 走向落后?
前端
一个有理想的摸鱼选手18 分钟前
(四)路书Agnet-综合天气距离交通节奏等多因素来编排旅行路线
前端·后端·gis
神奇的程序员21 分钟前
在这个独属于ai的时代,我终究是被裁员了
前端·后端·面试
玉宇夕落24 分钟前
React + JWT 登录鉴权系统
前端
hunterandroid29 分钟前
[鸿蒙从零到一] HarmonyOS 安全加固与数据保护实战:从密钥管理到反调试的全链路防护
前端
用户9210802628630 分钟前
从 Bubble 到 BubbleList:加载历史对话时才真正看懂组件通信
前端
hunterandroid31 分钟前
Android WebView JSBridge 治理实战:从线上白屏崩溃到协议化通信
android·前端
意疏1 小时前
2026年远控软件安全横评:六款主流工具逐项核查——官方文档、一手实测与安全事件,全摊开
大数据·前端·数据库
梦曦i1 小时前
RouterLink H5端控制台错误修复
前端·uni-app