1、递归监听:

默认情况下,ref 和 reactive 都是递归监听 内部每一层都包装成 proxy 对象
弊端:数据量较大的情况下,消耗性能

2、非递归监听:

只监听第一层
通过shallowReactive 和 shallowRef 来创建数据

注意:如果用shallowRef 创建的数据 监听的是 state.value 的变化,并不是第一层的变化
因为 shallowRef 的本质是 shallowReactive

shallowRef(10)=>shallowReactive(value:10)

3、如何触发非递归监听属性更新界面

如果是shallowRef 类型的数据 ,可以通过triggerRef 来触发

  1. state.b.c = 1
  2. triggerRef(state)

4、应用场景

一般情况下我们使用ref reactive 即可
只有需要监听的数据量较大的时候,我们才使用shallowRef/shallowReactive