mixins 和 composables 有什么区别?为什么 Vue3 推荐组合式函数?
mixins(Vue2 遗产):
- 多个 mixin 的同名选项会合并(data 浅合并、方法覆盖),来源不清晰 → 命名冲突、来源难追溯("属性从哪来")
- 不接收参数,复用性差
composables(Vue3 组合式函数):
- 普通函数返回响应式状态,复用清晰、可传参、可读性强
- 来源明确(import 进来),无隐式合并
// composables/useCounter.js
export function useCounter(initial = 0) {
const count = ref(initial)
const inc = () => count.value++
return { count, inc }
}结论:新项目一律用 composables;mixins 仅用于维护老 Vue2 代码。