所以,我已多次阅读:作文很好。延伸是邪恶的。
现在,我确实使用了composition,基本上是很多无状态组件和更高阶的组件,但是我确实有一个特殊情况,我扩展了一个类。
而不是从Component扩展的每个无状态组件,我从我自己的BaseComponent扩展,它基本上有一些我在所有组件中使用的辅助函数。
例如:
到目前为止,我对结果感到满意。我正在寻找任何理由让我真正打破这种模式以追求优秀的代码。
请不要“React推荐作文”答案。
答案 0 :(得分:0)
那么为什么不简单地将HOC用于每一件呢?
在这种情况下使用HOC的最大好处是,您可以单独或作为一组来应用它们。您可以在如何切割/切割这些共享功能方面获得大量控制权。
作为一个简单的示例,您作为HOC的记录器可能看起来像;
const function loggerHoc(WrappedComponent) {
return class extends Component {
log(message) {
console.log(message); //or other implementation
}
render() {
<WrappedComponent log={this.log} {...this.props}/>;
}
}
}
现在,如果你有第二个这种风格的HOC用于分析,它们可以毫无问题地叠在一起;
ResultComponent = loggerHoc(analyticsHoc(ChildComponent));
您还可以编写一个函数来完成所有操作;
const function wrapWithAll(WrappedComponent) {
return loggerHoc(
analyticsHoc(
WrappedComponent
)
);
}
或者您可以根据需要单独使用。