对 Compositon API 的理解
产生原因、优点
Vue3 的 Composition API 提供了更灵活的代码组合方式,符合组合优于继承的理念
- 代码组合条理清晰:相关代码组合,在大型项目中逻辑更清晰集中,而 Option API 会比较分散,读代码时需上下跳跃
- 便于类型推导:IDE 代码提示更友好
- 不依赖 this 上下文:变量可以被压缩,通过 this 访问的变量就不能被压缩
API
- setup 函数
import { setup, ref } from 'vue'
export default {
setup() {
const count = ref(0)
return { count }
}
}
- computed
- 监听
- watch: 监听指定数据源的变化,并执行回调函数。
- 适合特定数据监听,对比新旧数据,异步处理,深度监听。
- watchEffect:自动监听依赖的数据源,并在其发生变化时执行回调函数。
- 自动收集在回调函数中引用的数据
- 适合多个数据响应式联动
- watch: 监听指定数据源的变化,并执行回调函数。
- 响应式
- ref 和 reactive、toRef 和 toRefs
- 生命周期
- onBeforeMount
- onMounted
- onBeforeUpdate
- onUpdated
- onBeforeUnmount
- onUnmounted
- 依赖注入
- provide / inject
对比 Option API
应用场景:Composition API 不是 Option API 的替代品,是 Vue3 的高阶用法,非必要技术
- Option API 适合小型项目,逻辑不会太散、学习成本不高。
- Composition API: 跟 React Hooks 写法像。适合大规模项目,维护性强。
与 Class 关系
用组合的方式代替类继承,有 CompositionAPI 就不需要 Class 了