ref 与 reactive 都是响应式开发。
ref 与 reactive 的区别
- 定义的角度上:
- ref 定义基本数据类型
- reactive 定义数组、对象等复杂数据类型
- 原理角度上:
- ref 通过
Object.defineProperty()
的 get 与 set 实现响应式 - reactive 通过
Proxy
实现响应式,并通过Reflect
对原本数据进行增删改查
- ref 通过
- 使用角度上:
- ref 定义的数据,读取数据不需要value,操作数据时需要.value。即在
html
展现数据时不用.value,但是在setup
对数据进行更改时,需要.value才能获取到值
- ref 定义的数据,读取数据不需要value,操作数据时需要.value。即在
setup(){
// 1.1 定义响应式数据
let car = ref("奔驰") // 返回的是 RefImpl对象
let info = reactive({
name:"over",
age:18,
})
// 1.2 修改响应式数据
function changeData(){
name.value="宝马" // ref 需要.value
info.age = 55 // reactive 直接正常用
}
}