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