每天成长一点

# mixins的所有缺陷

mixins可以把组件逻辑提取到可复用的单元里。然而 mixins 有三个主要的短板:

1、不清晰的数据来源:当使用了多个 mixin 时,实例上的数据属性来自哪个 mixin 变得不清晰,这使追溯实现理解组件行为变得困难。这也是Vue3推荐在组合式函数中使用 ref + 解构模式的理由:让属性的来源在消费组件时一目了然。 2、命名空间冲突:多个来自不同作者的 mixin 可能会注册相同的属性名,造成命名冲突。若使用组合式函数,你可以通过在解构变量时对变量进行重命名来避免相同的键名。 3、隐式的跨 mixin 交流:多个 mixin 需要依赖共享的属性名来进行相互作用,这使得它们隐性地耦合在一起。而一个组合式函数的返回值可以作为另一个组合式函数的参数被传入,像普通函数那样。

基于上述理由,不推荐在 Vue3 中继续使用 mixin。保留该功能只是为了项目迁移的需求和照顾熟悉它的用户。