我喜欢React的/ Redux的智能和哑组件的概念,其中一个哑组件不处理它自己的状态(转储组件对外部世界一无所知,它只是触发事件并根据其输入显示值) .这是微不足道的,因为所有状态都在一个地方处理(主减速器).
在Elm中,每个组件都有自己的"更新"功能(类似于Redux的减速器),因此使用相同的(哑和智能组件模式)似乎并不容易.
使用智能和转储组件是榆树的好习惯吗?如果是这样,我会有没有"更新"方法的组件吗?我想知道如何将数据(props)传递给我的组件,以及如何将事件触发到父组件.
我很想听听你的想法.
您可以做出的另一个聪明/愚蠢的区别是返回的组件Effects和不返回的组件之间的区别。但要回答你的问题...
没有什么可以阻止你定义孩子的行为
type Action
= Submit
| Click
Run Code Online (Sandbox Code Playgroud)
并且在父级中view有
Child.view (Signal.forwardTo address ChildAction) props
Run Code Online (Sandbox Code Playgroud)
(我们通过是props因为没有模型数据可以通过)
但然后处理 Parent 中的所有操作update:
case action of
ChildAction act ->
case act of
Child.Submit ->
...
Child.Click ->
...
Run Code Online (Sandbox Code Playgroud)
无论如何,如果子项中的操作的影响是改变父项或父项的其他子项的状态,那么这将是至关重要的。
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |