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种
 
 
