--- theme: juejin highlight: an-old-hope
vue3.0的ref响应式和Reactive的区别:
ref函数
- 作用:定义一个响应式的数据
- 语法:
const xx = ref(initValue);
-
创建一个包含响应式数据的引用对象(reference对象)
-
ref接收的数据类型:基础数据类型,对象数据类型(注意:ref处理对象类型数据是求助与Reactive的;但是只能响应对象类型的最外层数据,不会深度递归)
-
ref的内部是使用object.defineProperty的get和set来获取数据劫持的,
-
ref处理过的数据必须使用.value才能获取到,而在模板中使用则不需要.value
Reactive函数
-
作用:定义一个对象类型的响应式数据,
-
Reactive接收的参数类型:对象类型(数组类型),返回一个Proxy对象
-
语法:
const person(代理对象) = Reactive(initObject被代理对象)
-
Reactive内部是使用ES6中的proxy来实现响应式的;
-
Reactive会深度递归监听对象的每一层,然后把每一层都会被包装成Proxy对象