vue3 ref和reactive的区别

基本定义:

ref:用于定义基本类型数据;

reactive:用于定义数组、对象、等引用类数据;

 

原理角度:

ref通过 Object.defineProperty() 的 get 与 set 来实现响应式的(数据劫持),传入一个基本类型数据,返回一个基于该值的响应ref对象,该对象中的值一旦被改变或访问,都会被跟踪到,如果传入的是引用类型,会在内部转换成reactive【ref(18)=>reactive({value:18})】;

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

 

使用上:

ref通过.value获取数据;

reactive则不需要;

 

使用ref获取dom和vue2的区别:

 标签上绑定ref后在setup中定义,在onmounted中使用.value可获取dom节点;

 

posted on 2022-04-20 21:05  SE7EN_96  阅读(213)  评论(0编辑  收藏  举报

导航