|
1
1
在我看来,抛弃你的不是继承和组合,而是你的数据流:
所以你在这里要做的是在渲染之后让一个与远程相关的组件的子更新道具,对吗?这样地?
有很多状态管理库可以帮助您解决这个问题,也就是说,在一个组件中生成数据并将其广播到一个遥远的相关组件。如果您想使用内置的工具来应对这个问题,您可能需要使用
在您的示例中,您的子类具有特定于数据的方法(
在我看来,这种使用hoc来抽象显式使用的劳动的模式
|
|
|
2
2
通常,如果一个组件是无状态的,并且不使用生命周期挂钩,那么它没有理由
在constrast到其他一些框架中,react没有需要映射变量以便在视图中可用的模板,因此
匿名函数可以作为
此外,可以使用
|
|
|
3
0
回答我自己的问题,这是我从来没有做过的… 因此,我的问题实际上源于这样一个问题:我需要重构一个大型的、必需的、有状态的代码库,以便与基于reacts组合的模型(也与redux)集成。但在阅读了(非常有洞察力和帮助性)对我的问题的回答后,我突然想到我的应用程序有两个并行部分:用户界面和运行算法的引擎(实际上它是一个音乐分析引擎)。我可以很容易地去掉引擎连接到的主干视图层。所以,使用反应 context API我已经构建了一个AnalysisEngineeProvider”,它使引擎可用于子组件。引擎都是非常必要的,经典的面向对象的,并且仍然使用主干模型,但是这对UI没有影响,因为后者不知道它的内部结构——这就是它应该如何(模型也可能在某个时刻被重构出来)。 引擎还负责呈现SVG(不带BB视图)。但React对此一无所知。它只是看到一个空的分区。我拿一个 ref 然后把它传给引擎,让引擎知道在哪里渲染。除此之外,引擎和用户界面几乎没有联系——Div根本就不会根据反应状态的变化进行更新(显然,用户界面的其他组件也是如此)。引擎中的模型只会触发SVG的更新,而SVG对此一无所知。 我对这种方法很满意,至少现在是这样——即使它只是针对完全反应解决方案的增量重构的一部分。无论我使用的是什么框架,它都是应用程序的正确设计。 |