我有若干组件,要给这些组件都新增一些公共的功能,应当使用 mixin 还是组合的来设计呢?
Mixin:
// 伪代码
ComponentA mixin SuperPower
ComponentB mixin SuperPower
ComponentC mixin SuperPower
然后直接使用 <ComponentA />
, <ComponentB />
, <ComponentC />
还是用组合来复用:
<SuperPower>
<ComponentA />
</SuperPower>
<SuperPower>
<ComponentB />
</SuperPower>
<SuperPower>
<ComponentC />
</SuperPower>
![]() |
1
Nillouise 183 天前
同楼主同样有疑问,mixin 跟普通的继承、组合有什么不同?我学 dart ,研究来研究去,发现好像也就给多重继承加多了一个继承顺序。
|
![]() |
2
4ark 183 天前 via iPhone
你们用什么框架?还是不用?
其实目前来看这两种方案都不是最优的,建议了解下 React Hooks |
![]() |
3
TomVista 183 天前
抄作业吧 react/vue hook
|
![]() |
7
zhuangzhuang1988 183 天前
hook 也不好.
|
![]() |
8
murmur 183 天前
hooks 是每个变量都要自己去优化,框架不管了,比起这个我还是喜欢 vue 帮我优化这些
|
![]() |
9
anjianshi 183 天前
建议尽量不要用 mixin ,除非是加一些底层特性例如给每个组件加个通用的异常捕获啥的。
因为 mixin 不直观,一旦应用复杂起来很难维护,遇到问题也不容易找出到底是哪个组件加进来的哪个 mixin 导致的问题。 |
12
darknoll 183 天前
非常不喜欢 mixin ,后期维护的时候容易一头雾水
|
![]() |
13
maplelin 183 天前
不推荐 mixin ,感知性太差,mixin 中引入的方法和变量在引入 mixin 的组件中不可感知,一旦 mixin 发生错误,定位问题的麻烦程度直接翻倍
|