vue3 定义响应式数据的多种方式及分析

  • ref

    • 定义基本类型的响应式数据,原理通过Object.defineProperty()getset完成的。(对象类型不要用它,要用reactive函数)
  • reactive

    • 定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)
  • shallowReactive

    • 只处理对象最外层属性的响应式(浅响应式)
  • shallowRef

    • 只处理基本数据类型的响应式, 不进行对象的响应式处理
  • readonly

    • 让一个响应式数据变为只读的(深只读)
    • 应用场景: 不希望数据被修改时
  • shallowReadonly

    • 让一个响应式数据变为只读的(浅只读)
    • 应用场景: 不希望数据被修改时
  • toRaw

    • 作用:将一个由reactive生成的响应式对象转为普通对象
    • 应用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。
  • markRaw

    • 作用:标记一个对象,使其永远不会再成为响应式对象。
    • 应用场景:
      • 有些值不应被设置为响应式的,例如复杂的第三方类库等。
      • 当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能。

你可能感兴趣的:(vue,js,vue3)