【发布时间】:2020-09-13 14:50:10
【问题描述】:
我有两个组件采用完全相同的道具并共享完全相同的方法。但他们有不同的用户界面。你会如何建议保持这个干燥?我的第一个想法:
- 创建一个具有 onClick 方法和 props/state 的 Wrapper 组件。
- 创建两个接受 props/state 的 UI 组件,然后根据需要进行渲染,例如:
<Wrapper> <UIComponent-1 /> </Wrapper> <Wrapper> <UIComponent-2 /> </Wrapper>
有没有更好的方法来做到这一点?我正在考虑使包装器成为 HOC,但随后需要复制 onClick 功能(或从某个公共文件导入)。
【问题讨论】:
-
您能分享两个组件的简化示例吗?这将有助于了解它们如何共享其功能。
-
顺便说一句,Code Review Stack Exchange 可能是一个更好的地方发布这个:)
-
HOC 就是你想要的。 mixins 的继任者:reactjs.org/docs/higher-order-components.html@cbr 我认为在这种情况下,它非常特定于 React,对于 SO 来说并不太“固执己见”,因为它有一个由设计者为这个特定用例创建的既定方法。据我所知,codereview 也是针对实际工作的代码,而不是存根和理论。充其量它可能会去软件工程?但它太特定于 React。
标签: javascript reactjs