ref和reactive 数据每次修改都会被追踪,都会更新UI界面,也是非常消耗性能的,所以如果我们有一些操作不需要追踪,不需要更新UI界面,那么这个时候我们就可以通过toRaw方法拿到它的原始数据,对原始数据进行修改,虽然数据改变了,但是这样不会被追踪,也就不会更新UI界面,这样会优化一些性能。
例如:
setup() {
let obj={name:'jiangyx',age:18}
let state=reactive(obj)
let obj2=toRaw(state)
console.log(obj===obj2); //true
const testLoad=()=>{
obj2.age='19'
console.log(state); //打印出来的age是19
console.log(obj2); //{name: "jiangyx", age: 19}
}
return {
state,
testLoad
}
},
setup() {
let obj={name:'jiangyx',age:18}
let state=ref(obj)
let obj2=toRaw(state.value)
console.log(obj===obj2); //true
const testLoad=()=>{
obj2.age='19'
console.log(state); //打印出来的age是19
console.log(obj2); //{name: "jiangyx", age: 19}
}
return {
state,
testLoad
}
}