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则是监听指定的数据的变化,并在数据发生变化时执行相应的操作。

相关推荐
running up21 小时前
Vite 全面解析:特性、对比、实践及最新演进
javascript·typescript
.格子衫.21 小时前
JS原型链总结
开发语言·javascript·原型模式
shoubepatien21 小时前
JavaWeb_Web基础
java·开发语言·前端·数据库·intellij-idea
WordPress学习笔记21 小时前
wordpress外贸主题Google地图添加(替换)方案
前端·wordpress·wordpress地图
计算机毕设VX:Fegn089521 小时前
计算机毕业设计|基于springboot + vue旅游信息推荐系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·课程设计·旅游
OrangeForce21 小时前
Monknow新标签页数据导出
javascript·edge浏览器
小妖66621 小时前
力扣(LeetCode)- 93. 复原 IP 地址(JavaScript)
javascript·tcp/ip·leetcode
古月฿21 小时前
大学生素质测评系统设计与实现
java·vue.js·redis·mysql·spring·毕业设计
码农秋1 天前
Element Plus DatePicker 日期少一天问题:时区解析陷阱与解决方案
前端·vue.js·elementui·dayjs
未来之窗软件服务1 天前
未来之窗昭和仙君(五十六)页面_预览模式——东方仙盟筑基期
前端·仙盟创梦ide·东方仙盟·昭和仙君·东方仙盟架构