一、 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】谈Vue的依赖追踪系统 ——搞懂methods watch和compute的区别和联系
小白笔记~~~~