导入
应用架构
了解 Ember 应用程序的架构和工作流程。
Ember 遵循 MVC(模型-视图-控制器)软件设计模式。MVC 的核心思想是:我们的应用程序应由独立的数据模型、独立的视图层和独立的控制器组成。这三个层次应当分别由不同的对象来实现。接下来,我们将详细讨论 MVC 设计模式中的每一层。
MVC 模式
- 模型(Model):模型是一个仅包含应用程序数据的对象。模型不涉及数据逻辑,即数据如何呈现给用户。
- 视图(View):视图是用于向用户展示模型数据的表示层。视图可以访问模型中的数据,但不负责对模型中数据的任何操作。
- 控制器(Controller):控制器充当视图与模型之间的中介。它接收视图触发的事件,监听这些事件并执行预定义的操作。当需要在事件发生时渲染数据时,控制器会调用模型中的函数,并将操作结果反映到视图中。
下图展示了 MVC 模式的完整流程:
...
MVC设计模式
Ember 也遵循相同的 MVC 模式。在 Ember 中,路由(routes)充当模型,模板(templates)作为视图,而控制器则负责在两者之间处理数据交互。下面我们深入探讨这些 MVC 组件。
模型层
在 Ember 中,模型层由模型和 Ember Data 构成。Ember Data 提供了一个存储库(store),用于存放所有的模型数据。
视图层
视图层由视图和模板共同组成。在 Ember 中,视图层将原始事件(如点击事件)转换为语义化事件(例如删除某个产品)。这些语义化事件随后被发送至控制器。如果控制器中没有对应的处理方法,则事件会被转发给路由器,由路由器根据应用状态作出响应。
控制器层
控制器层由控制器和路由共同构成。控制器负责处理来自视图层的操作请求。路由从 Ember Data 获取数据,并将其加载到对应的视图中。
下图展示了 Ember 的 MVC 工作流程:
...
Ember的MVC
Ember 应用的工作流程
当我们访问一个 Ember 应用的 URL 时,会发生以下一系列事件:
- 请求被转发给路由器,路由器开始在
router.js文件中查找匹配的路由。 - 如果找到对应路由,路由处理器将该 URL 映射到相应的路由。
- 路由器随后加载对应的模板和模型数据。
- 模板渲染出组件内容。
下图描述了 Ember 应用的完整工作流程:
...
Ember应用架构