architecture - 一个页面如何发出消息以导航到 Elm 中的另一个页面?

标签 architecture navigation elm elm-architecture

这是我的 Elm 应用程序当前的结构:

类型.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 

我坚持以下看似相互矛盾的要求:

  • 尽量使页面彼此完全独立,其中它们的 MsgModel 类型可以独立推理
  • 让页面知道彼此的存在(在类型级别),以便它们的查看/更新功能可以发出 NavigationStart page 消息以在彼此之间导航。

在 Elm 中实现此目标的最佳方法是什么?

最佳答案

查看 Richard Feldman 的单页示例存储库 here .本质上你有一个顶级应用程序,它管理每页的每个模型\ View \更新。

关于architecture - 一个页面如何发出消息以导航到 Elm 中的另一个页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51006909/

相关文章:

用于 swing GUI 编程的 Java 类体系结构

ios - 如何以编程方式导航到另一个 View Controller ,在 ios 9 中使用 "over current context "表示, Objective-C

swift - 无需导航即可传递数据 (Swift)

html-select - 如何在 Elm 中获取多选的选定选项?

import - 从 elm 中的其他模块导入时使用别名

python - 模块 "duck typing"有陷阱吗?

c# - 跨多个数据中心在地理上扩展 Azure 云服务

iphone - 更改每个导航上的导航栏背景图像

php - 榆树和数据库事务

c# - 库存控制系统的类结构