computed
它是一个属性-使用起来像使用属性一样,你可以像使用data中定义的属性一样来使用计算属性。
只要计算属性中所依赖的数据发生了变化 ,就会自动的触发计算属性
(依赖:就是基于data中声明过或者父组件传递的props中的数据通过计算得到的值)
使用场景
- 当我们需要根据数据的变化执行操作的时候
- 当我们执行复杂运算的时候,同时结果需要进行复用
watch
它监听指定的属性值的变化 ,只要属性值发生了变化,就会自动的触发相应的侦听器
函数名称必须和你想侦听的属性名称完全一致
使用场景
- 当我们需要根据数据的异步变化执行操作的时候
两者差异
- 计算属性需要人为调用才会有结果,侦听器不需要
- 计算属性一般会有返回值,侦听器没有
- 计算属性名称可以自定义,但侦听器必须和想要侦听的属性名完全一致
- 侦听器可以在数据变化时执行异步,计算属性不行