首先ref函数和reactive函数都是用来定义响应式数据;
但是reactive更适合定义复杂的数据类型(json/arr)、ref适合定义基本数据类型(可接收基本数据类型和对象)
先说一下ref:
ref 函数传入一个值作为参数,返回基于该参数的响应式ref对象
ref 接受参数,并将其包裹在一个带有 value property 的对象中返回,然后可以使用该 property 访问或更改响应式变量的值
将值封装在一个对象中,看似没有必要,但为了保持 JavaScript 中不同数据类型的行为统一,这是必须的。这是因为在 JavaScript 中,Number或 String等基本类型是通过值传递的,而不是通过引用传递的,在任何值周围都有一个封装对象,这样我们就可以在整个应用中安全地传递它,而不必担心在某个地方失去它的响应性。
reactive:
(1)它的响应式是更加‘深层次’的,底层本质是将传入的数据包装成一个Proxy。
(2)参数必须是对象或者数组,如果要让对象的某个元素实现响应式时比较麻烦。需要使用toRefs