Vue基础记录:watch、computed、method

995 阅读2分钟

一、 computed、methods、watch

|- computed(计算属性)

|- 基于它们的响应式依赖进行缓存
|- 监控自身定义变量,此变量直接定义在computed里面,而不是data里面定义。
|- 适合对多个变量或者对象处理后返回一个结果值。多个影响一个。
|- 只有存在依赖型数据,当依赖型数据发生改变,才会重新计算。所以对于任何复杂逻辑,都应当使用计算属性。

|- watch(侦听器)

|- 当需要在数据变化时执行异步或者开销较大的操作,此方式是最有用的,
    譬如:	
        允许执行异步操作(访问一个API),限制执行该操作的频率,
        在得到最终结果前,设置一个中间状态。计算属性无法做到。	
|- 主要用于vue实例的监控变化,监控的变量必须在data里面声明。可以监控单个变量或者整个对象。
   一个影响多个.
|- 常用于监控路由、input输入框等特殊处理。没有缓存

|- methods(事件处理)

定义函数,是需要主动调用触发的。每次调用都会重新计算。没有缓存

区别:

|- 作用机制上:
    |- computed和watch都是以依赖追踪机制为基础,譬如:当某个依赖数据发生变化时,所有依赖此数据的“相关”数据“自动”发生变化,
       通俗讲就是自动的调用相关函数去实现了数据的变化,
    |-Methods 类似于function,需要主动手动去调用,
              不会像computed、watch一般“自动执行”预先定义的函数
|- 性质上:
    |- Computed是计算属性,事实上和data对象里的数据属性在使用上是同一类,一个数据受到多个数据的影响
    |- Methods 定义的是函数, 显然需要像“func()”一般去调用,不处理数据逻辑关系,只提供可调用的函数
    |- Watch:类似于 监听机制 + 事件机制,一个数据影响多个数据

实操例子:

1. 计算花费账单的总数:


利用计算属性处理:


计算属性定义amount变量并且返回对应结果, 如果重复定义变量报错将会下图所示,计算属性变量不能重复定义赋值


结果:



以上amount转移到methods,amount属性变函数,得出结果一致

watch示范:

更改team name,对应的成员所属team name也更改



结果





参考转载记录:

vue的computed和watch的细节全面分析

【Vue】谈Vue的依赖追踪系统 ——搞懂methods watch和compute的区别和联系




小白笔记~~~~