高阶组件和 Decorator, 怎么选择?

#1

React 组件, 而且带副总用的时候, 抽象的方式似乎就是这两种了, 以前的 Mixin 没看到有谁在用了. 那这两种方案的优劣是啥, 怎么选择?

#2

Decorator对于测试、flow检测等,都是个头疼的问题,现在还不成熟,建议慎用。

#3

其实都是高阶函数, 返回的是一个组件: <App {…props}/>

1 Like
#4

具体怎么讲? 我厂用的 TypeScript, 看上去 ts 里的 decorator 已经很常见啊.

#5

抱歉,我对typescript不是很熟悉,我们项目中大都是用ecmascript。

#6

由于mixin 方式会造成数据的混乱,state难以追踪,官方比较推荐高阶组件,高介组件本身其实也是返回一个组件。至于decorator我的理解是,它其实本身也是一个高阶组件,不是吗?

1 Like
#7

说得也是. 我试了一下 decorator, 确实高阶组件. 不过 decorator 能做的事情看起来挺多, 我看到有别人拿过去然后魔改 prototype 的, 吓死人.