快速理解Vue3的toRaw和markRaw
raw的意思
- raw就是原始的意思
toRaw就是把一个响应式对象转化为普通对象
markRaw就是把某个数据,标记为普通对象,当我们把它放到响应式对象中,也依然是非响应式的
toRaw
toRaw的作用是什么?
- 将一个用reactive生成的响应式对象,变成非响应式的普通对象
- 然后赋值给新的变量
- 注意:不影响原来的对象

toRaw的使用场景是什么
- 用于读取响应式对象中的普通对象
- 对这个对象的所有操作,都不会引起页面更新
markRaw
为什么需要用到markRaw
- 有些值不应被设置为响应式的,例如复杂的第三方库
- 比如一个响应式对象中,要放入axios,或者别的随机数字的第三方库
- 如果不让他变成非响应式的,那么Vue就会去找到每一个层级,让其都能响应式处理
- 这样的情况下,性能就会受到严重影响
- 所以我们需要让其变成永远都不会成功响应式的数据,提高性能
- 当渲染具有不可变数据源的大列表时,跳过响应式可以提高性能
对谁使用markRaw?
- 这个数据原本不能是响应式的
- 然后把这个数据放到响应式对象当中
怎么用markRaw?
- 引入
markRaw
- 对一个原本不是响应式的数据进行使用
marRaw,变成永不响应式的数据
