这是我的 Elm 应用程序当前的结构:
类型.榆树:
import Pages.Login.Types as Login
import Pages.Dashboard.Types as Dashboard
type Page = LoginPage
| DashboardPage
type Msg = LoginMsg Login.Msg
| DashboardMsg Dashboard.Msg
| NavigationStart Page
| NavigationEnd Page
type Model = LoginModel Login.Model
| DashboardModel Dashboard.Model
登录.elm:
import Pages.Login.Types as PageTypes
import Types
view : (PageTypes.Msg -> msg) -> PageTypes.Model -> Html msg
view = -- some code
我坚持以下看似相互竞争的要求:
- 试图保持页面彼此相当独立,它们
Msg
和Model
类型可以独立推理 - 使页面知道彼此的存在(在类型级别),以便它们的视图/更新功能可以发出
NavigationStart page
消息以在彼此之间导航。
在 Elm 中实现这一目标的最佳方法是什么?