到目前为止,我的所有视图代码仍在我的主文件Main.elm
中。在该文件中,它是相对良好的因素,视图的不同部分被适当地分解。
我的问题:我真的想把它分成单独的文件,例如:
- Views/Header.elm
- Views/InfoPage.elm
- Views/Footer.elm
- 等等
但我真的不清楚如何做到这一点。当然,我可以制作不同的文件并导入/导出我需要的功能。使用非常简单的视图(例如页脚)并不困难,但我很快遇到了更复杂的view
s 的问题,其中大多数都包含app逻辑,即调用更新函数。当然,如果我然后将Msg
导入到我的单独视图文件中,那么我将获得循环依赖。如果这是一个天真的问题,请道歉,但我该如何解决这个问题呢?我只是希望能够在不同的文件中使用不同的页面部分,这样我就可以更容易地进行导航,而不是永久滚动。
我已经搜索了一些关于重构Elm应用程序(for example)的帖子,但没有专门针对视图代码。谁能给我一些指示?是否不可能在不考虑其使用的应用程序逻辑的情况下分解视图代码? (如果那个应用程序逻辑也被用在其他地方呢?)我真的很感激这里的一些帮助。
答案 0 :(得分:0)
您可以按如下方式组织依赖项:
Model.elm (includes Model and Msg)
^ ^
| |
View.elm Update.elm
^ ^
| |
Main.elm
你说你遇到了更复杂的观点问题,其中大多数都包含app逻辑,即调用更新函数。"但是视图不应包含应用程序逻辑,也不要调用更新功能。视图只需要声明用于处理各种事件的Msg
构造函数,因此视图和更新完全解耦。