Composition API 是 Vue3 所推出以解决 Vue2 Options API的一些限制。
3个限制
- 当组件变得庞大复杂时,代码可阅读性大大降低
- 代码复利都是有比较明显的缺陷
- Mixins
- 优点
- 可以根据不同的功能来归类
- 缺点
- 比较容易产生冲突
- 复用性不是特别高
- 优点
- Mixin Factories
- 优点
- 可复用性大大提高
- 缺点
- 命名空间需要有严格的规范
- 暴露的属性需要进入Mixin工厂函数定义文件里查看
- 不能动态生成
- 优点
- Scoped-slot
- 优点
- 解决Mixin的大多数问题
- 缺点
- 配置需要模板完成,理想的状态模板里只定义需要渲染的内容
- 缩进降低代码的可阅读性
- 暴露的属性只能够在模板里使用
- 3个组件比1个组件,性能开销上升
- 优点
- Mixins
- TypeScript的支持非常有限
1,2点可以由 Composition Functions 来体现
提取代码,做代码复用的解决方案 Composition API
- 优点
- 代码量减少,能够更容易地把功能从组件内部提取到一个函数里
- 因为使用是函数,便用的现有的知识
- 更加灵活
- 智能感知、自动补全等编辑器里提示的功能都能够帮助你去编写代码
- 缺点
- 学习low-level API知识,来定义Composition Functions
- 3.0定义组件的方式变成了2种