关于Vue3

1. Composition API区别于Vue2的Option API
2. Fragment(碎片)
- <template></template>不再需要根元素包裹,Vue3内部会有自动将其包含在Fragment虚拟元素中
- 好处:减少标签层级,减小内存占用
3. script差异
- 使用ts只需要设置lang
- defineComponent方法创建一个组件
- export default直接导出一个组件
4. setup(Composition API入口)
- 返回一个对象,setup中的方法和methods中的方法合并。setup中数据和data中数据合并,如若重名,按setup中执行
- setup中方法在methods、data中可以拿到,反之不可,因为setup中this=undefined
5. suspense组件
- <suspense></suspense>放置一些不确定的操作。比如:异步
6. setup参数
- setup(props, context)
- props:接收父组件传递的值,父组件信息传递的props
- context:
| attrs | slots | emit |
| --- | --- | --- |
| this.$attr | this.$slots | this.$emit |
| 除props之外的属性 | 插槽数据 | 父子传参 |
7. ref
- setup中数据都不是响应式,修改了数据,视图并不会更新
- 同样可以获取元素
- 在setup中得给ref指定类型HTMLElement
8. reactive
- 接收一个普通对象然后返回该普通对象的响应式代理对象(底层通过使用proxy进行代理)
9. computed区别于Vue2
10. provide、inject跨层级组件通信(祖孙)
11. Teleport传送组件:可以将组件进行传送
12. 生命周期
- | Vue2.x | Vue3.x |
| --- | --- |
| beforeCreate | setup() |
| created | setup() |
| beforeMount | onBeforeMount |
| mounted | onMounted |
| beforeUpdate | onBeforeUpdate |
| updated | onUpdated |
| beforeDestroy | onBeforeUnmount |
| destroyed | onUnmounted |
| activated | onActivated |
| deactivated | onDeactivated |
| errorCaptured | onErrorCaptured |
| | onRenderTriggered |
| | onRenderTracked |