选项式 API 按 data、methods、computed 等「选项类型」组织代码,一个业务逻辑被拆散到多个选项里,组件一大就来回跳;组合式 API 按「逻辑关注点」组织,相关状态、计算、副作用写在一起,并能抽成可复用的组合函数(composable),解决大组件逻辑分散与逻辑复用两大痛点。
对比 mixins:mixins 存在来源不明、命名冲突、隐式依赖问题;composable 是显式函数调用,输入输出清晰,天然支持 TypeScript 推导。选项式并未废弃,两者可混用。易错点:组合式不等于没有生命周期,只是换成 onMounted 等函数形式;setup 里没有 this,props 通过参数或 defineProps 获取。追问:与 React Hooks 的心智差异——setup 只执行一次靠依赖追踪,React 函数每次渲染重跑靠依赖数组。
// composable:useMouse.js 返回 { x, y },多处复用
const { x, y } = useMouse()