Vue Mixins 用久了为什么容易乱:复用逻辑不等于把代码拼在一起

0 阅读

Vue 里做逻辑复用时,Mixins 是很自然会接触到的一种方式。

刚开始用时它很顺手:提一段公共逻辑,多个组件混进来就能复用。可一旦项目做久,很多团队都会感受到同一个问题:Mixin 好写,但不太好管。

Mixin 最大的问题是“隐式”

组件引入一个 Mixin 后,表面上只是多了一行配置,实际上它可能带来:

  • data
  • methods
  • computed
  • 生命周期

这些能力会直接混进当前组件里。

功能上当然成立,但阅读代码的人很容易看不出来某个字段到底来自哪里。

一开始省事,后面成本会上来

Mixin 常常在项目前期特别讨喜,因为它能很快解决:

  • 表单通用逻辑
  • 列表加载逻辑
  • 权限判断逻辑

可随着 Mixin 越来越多,组件就开始出现两个典型问题:

  • 命名冲突
  • 来源不清

这时调试体验会明显变差。

复用逻辑不能只看“抽没抽出来”

真正稳定的复用,不只是把代码搬到另一个文件,而是要让依赖关系仍然清楚。

如果一个组件用了多个 Mixin,后面想知道:

  • 哪个方法是谁提供的
  • 哪个生命周期里做了什么
  • 为什么这个字段会突然存在

这些问题都会变得不那么直观。

写在最后

Mixin 当然能用,但它更适合短期、简单、边界清楚的逻辑复用。

一旦项目越来越复杂,光“能复用”已经不够,来源和边界同样重要。代码复用如果把可读性搭进去,后面通常会还回来更多维护成本。