本文介绍了Mantra的核心组件和它们如何共同发挥作用的。
关注客户端
Mantra非常关注客户端,因为那是你写大部分代码的地方。我们允许客户端缓存和连接器与服务端和远端数据层交互。
ES2015 语法和 ES2015 模块
我们依赖于ES2015的多个特性和它的模块系统。为了使用Mantra,你首先需要使用Meteor 1.3,它包含了一个ES2015模块系统的实现。
React 作为 UI
我们使用React作为Mantra的UI(表现层)。你应当使用props来传递所有的数据,事件处理和库函数。
Actions
Actions是你写业务逻辑的地方,其中包含:
状态管理
在app中,我们需要处理不同种类的状态。我们可以将其分为两类:
我们有不同的方法来管理app的状态,其中包括:
容器
容器是Mantra的集成层。它做了下面这些事情:
应用上下文
应用上下文能被所有actions和容器获取,所以这里是app中提供共享变量的地方。它们包括:
依赖注入
Mantra使用依赖注入来分离app的不同部分,包括了UI组件和actions。
路由和组件加载
我们通常使用路由来在UI中加载组件。
这里有多种选择(例如,FlowRouter和React Router)
单一入口
在Mantra中,我们想要app变得可预测的。所以,你的app只有一个入口。通常这个文件会加载路由。
库
任何app都有功能函数来完成不同的任务。你可以通过NPM获取它们。在Mantra中,库需要在应用上下文中导入。为此,我们提供了一个libs字段来包含它们。
测试
测试是Mantra的核心。Mantra帮助你测试应用的每个部分。我们强调的规则会帮助你编写测试。你可以使用熟悉的工具,如Mocha, Chai和Sinon来进行测试。
使用Mantra,你可以单元测试app的三个核心部分: