- vue2的API设计是 OptionsAPI(配置)风格的。
- vue3的API设计是CompositionAPI(组合)风格的。
核心区别

图片来源于官网:vue中文官网
设计理念
- Options API:按功能类型归类(如data、methods、computed),通过预定义选项组织代码,适合新手快速上手 。
- Composition API:按功能聚合逻辑(如状态+方法+计算属性),通过setup函数或<script setup>语法糖自由组合API,适合复杂组件 。
逻辑复用
- Options API:依赖mixins,易出现命名冲突、来源模糊等问题 。
- Composition API:使用组合函数(Composables),支持参数传递、来源清晰,复用性更强 。
响应式与上下文
- Options API:依赖this访问状态和方法,TypeScript类型推断较弱 。
- Composition API:显式使用ref/reactive创建响应式数据,TypeScript支持更友好 。
适用场景
- Options API:小型项目或需快速上手的场景 。
- Composition API:大型项目、需高复用性或TypeScript开发的场景 。
性能与兼容性
两者性能差异不大,但Composition API在Vue 3中更灵活,支持更细粒度的生命周期控制 。