Vue3.x中ref和reactive的区别

数据角度对比:

ref 用来定义:基本类型数据

reactive 用来定义:对象、或数组类型的数据

备注:ref也可以用来定义对象或数组类型数据,它内部会自动通过 reactive 转为代理对象。

原理角度对比:

ref 通过 Object.defineProperty() 的 get 与 set 来实现响应式的(数据劫持)

reactive 通过使用 Proxy 来实现响应式(数据劫持),并通过 Reflect 操作源对象内部的数据。

使用角度对比:

ref 定义的数据:操作数据需要 .value,读取数据时模版中直接读取不需要 .value

reactive 定义的数据:操作数据与读取数据,均不需要 .value

无论刮风还是下雨,太阳照常升起。