1.createApp() ==> 创建一个应用实例。
说明:等于vue2的 ==> new Vue()
所以场景:写插件(封装全局组件和使用)
2.provide / inject ==> 依赖注入
说明: 其实就是传值
场景:某一个父组件传值 到后代组件,如果层级过多传递麻烦,所以使用。
缺点:不好维护和查询数据来源
3.directve
说明:自定义指令
场景:后台管理系统中的按钮权限控制(一个用户拥有某些权限,但是只能查看和修改,不能删除)
4.minix
说明:1.全局混入 2.局部
场景:可以添加生命周期,我在小程序的分享功能会用到
缺点:不好维护和查询数据来源
5.app.config.globalProperties
说明:获取vue这个全局对象和方法
场景:自己封装插件的时候需要把方法添加到对象中
6.nextTick
说明: 等待下一次dom更新刷新的工具方法:nextTick返回一个Pormise,回调函数放在Pormise中,所以是异步执行的
场景:就是把dom要更新,那么vue是数据驱动dom,所以数据的赋值就是在nextTick进行
7.computed
说明:计算属性
场景:有缓存
8.reactive、ref
说明:来定义数据和vue2的data类似
9.watch
说明: 监听(vue3不需要深度监听)
10.markRaw()
说明:不被new Proxy代理,说白了就是静态数据
11.defineProps()
说明: 父组件传递的值,子组件所以setup的形式,需要用defineProps接收
12.defineEmits()
说明: 当前组件使用setup的形式,自定义事件需要用defineEmits
13.slot
说明:氛围1. 匿名 2.具名 3.作用域
场景:后台管理系统,右侧是不固定内容,那么右侧及时slot