vue3:新特性
- 直接操作对象reactive,底层
- 基本类型数据ref,操作数据需要.value,通过
object.defineProperty()
的get和set方法来实现响应式(数据劫持) - reactive通过使用proxy来实现响应式(数据劫持),并通过reflect操作源对象内部的数据
- 所有的方法定义在setup函数中
- 监视reactive所定义的对象,无法获取准确的old值,深度监视配置无效,默认就是开启状态
- watchEffect:不需要指定监视的属性,用于监视被依赖的数据发生变化便执行,没有返回值,与computed相似,但是computed必须有返回值,watch函数则需要指定监视的属性、回调函数、配置三个参数
- composition:组合式API,引入-使用-返回
- hook函数:本质是一个函数,对setup中的组合式API进行封装,代码复用,类似于mixin
- toRef:
toRef(obj,''propName)
,obj中的属性变成响应式数据 - toRefs:
toRefs(obj)
,obj中所有属性变成响应式数据,return{...toRefs(obj)}
- toRaw:将一个reactive生成的响应式对象变成普通对象
- markRow:标记一个对象不会成为响应式数据
- 自定义属性ref:引入customRef,定义一个fanction(){},set方法中添加track()跟踪方法,get方法中添加trigger()触发vue重新解析模板
- provide和inject:主要用于祖孙组件之间通信,子组件也可以拿到数据,但是父子组件常用props
- 响应式数据常用API判断 :
isRef()、isReactive()
- teleport:to属性在哪里显示该标签结构