computed和watch的区别是什么?

参考:computed和watch的区别

1、watch: 一个数据影响多个数据

2、computed:一个数据受多个数据影响

3、watch computed methods区别

(1)watch computed以Vue的依赖追踪机制为基础,只要依赖数据发生变化,所有依赖这个数据的“相关”数据会“自动”发生变化,即自动调用相关函数去实现数据的变动
(2)methods里定义的函数需要手动调用才能执行

4、举例说明

new Vue({
  el: '#app',
  // 设置两个button,点击分别调用getMethodsDate,getComputedDate方法
  template: 
'<div id="app">
    <button @click="getMethodsDate">methods</button>
    <button @click="getComputedDate">computed</button>
</div>',
  methods: {
    getMethodsDate: function () {
      alert(new Date())
    },
    // 返回computed选项中设置的计算属性——computedDate
    getComputedDate: function () {
      alert(this.computedDate)
    }
  },
  computed: {
    computedDate: function () {
      return new Date()
    }
  }
  1. 两次点击methods返回的时间是不同的
  2. 注意两次点击computed返回的时间是相同的,因为此时computed提供的是缓存的值,而没有重新计算
    computed进行重新计算的条件:
  3. 存在依赖型数据(放在data等对象下的实例数据)
  4. 依赖数据发生改变

猜你喜欢

转载自blog.csdn.net/weixin_43912756/article/details/108272360