当我们第一次使用 Ember JS 启动我们的应用程序时会发生什么?

What happens when we first boot our app using Ember JS?

我是ember的新手,经历了一段时间的Ember JS Documentation,突然想到了两个问题。我什至在 Internet 上冲浪了几个小时,几乎找不到解决方案。所以,他们是:

问题一:

引用 Ember 文档,

The application is entered when your app first boots up. Just like any other route, it will load an application template by default.

上面引用中的

application 表示 application route,根据文档,它在应用程序启动时加载并呈现 application.hbs。申请途径在哪里?

问题二:

router.js 文件在控制流中的确切位置加载?在申请途径之前还是在申请途径之后?

要求:

此外,如果有人能帮助我完成 Ember JS 的完整流程(从用户输入 localhost:4200 开始),我将不胜感激。

谢谢。

我会尝试尝试一下...但我也对其中的一些内容感到困惑。

  1. Ember 解析器根据命名约定做了很多工作。默认情况下 - Ember 安装已经创建了一些东西 --- 但在构建/或过程中的某个时间 - 它会创建可能 隐含 的控制器和路由但你没有创造。例如...您的文件夹结构中没有 application.js 路由...但是 Ember 在幕后的神秘区域中创建了它。这可能是为了让您无需考虑表面积 - 如果您没有明确使用它。就像那样 'route' - 它也会创建一个控制器。在呈现模板之前路由是 'entered' - 因为它需要定义模型之类的东西 - 顺便说一句 / 可能只是在 上设置的 属性 non-existant(据您所知) 同名控制器。 (See route lifecycle hooks) 其他隐式路由是 /index /error /loading 等 - 它们都在那里 - 对于每条路由 - 即使你看不到文件。如果你想使用它们,你需要明确地创建它们(使用 CLI)。
  2. 我只能想象在您输入任何路由之前路由器已加载好...否则,它不知道如何解决问题?-陷阱...尝试创建一个应用程序路由-并实际添加它到路由器。事情会破裂。但好的一面是,无论发生什么情况,您都不必输入一条路线?
  3. 我不确定(还)更多的细节 - 但我认为它是一条穿过小孔眼并根据模型和属性在每个范围内获取更多数据的线程。

这里有一些值得细细品味的东西:

dockyard.com/blog/2016/09/14/understanding-ember-s-resolver

EmberConf 2017: An Animated Guide to Ember Internals by Gavin Joyce

此外,Mike North 的前端大师课程对此进行了详细介绍。 https://frontendmasters.com/workshops/ember/ - 但你不只是在学习 Ember...你正在学习 ember 由 es2015 等制成的所有内容 - 在那个区域没有太多的同理心

如果你能克服最初的谜团 - Ember 非常有趣。 :)

看来您的主要问题已在此处得到解决,看看我能否回答您的主要应用流程问题。

Ember运行“启动”您的应用程序的一系列步骤:

  • 应用程序已打开(运行s 初始值设定项)
  • 应用程序实例开启(运行 个实例初始化程序)
  • 应用实例加载router.js文件
  • 路由器加载应用路由/控制器
  • 路由器加载指定的路由/控制器(如果指定了 none,则回退到 index route/controller)

本页 (https://guides.emberjs.com/v3.0.0/getting-started/core-concepts/) 上显示的图表中概述了其中的一些内容,但看起来我们可以对其进行改进以使事情更清楚。如果你有 time/interest,希望能得到一些帮助来更新图像!