computed和watch的区别

71 阅读1分钟

computed

  • 支持缓存
  • 不支持异步

watch

  • 不支持缓存
  • 支持异步
  • 拥有两个配置项:immediate(立即执行),deep(深度监视)
  • 监听的函数接收两个参数,第一个是newValue,第二个是oldValue

总结

  • computed能完成的功能,watch都可以完成
  • watch能完成的功能,computed不一定能完成

原则

  • 被vue管理的函数,写成普通函数,此时的this指向vm或组件实例对象
  • 不被vue管理的函数(定时器的回调函数,Ajax的回调函数),写成箭头函数,这时的this指向才是vm或组件实例对象