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

标签 javascript ember.js ember-data ember-cli ember-cli-pods

我是 Ember 新手,我已经阅读了 Ember JS 文档有一段时间了,突然想到两个问题。我什至在网上冲浪了几个小时,几乎找不到解决方案。所以,它们是:

问题 1:

引用 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.hbs。申请途径在哪里?

问题2:

router.js 文件在控制流中的具体位置加载?申请路线之前还是申请路线之后?

请求:

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

谢谢。

最佳答案

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

  1. Ember 解析器根据命名约定完成大量工作。默认情况下 - Ember 安装已经创建了一些东西 --- 但在构建时/或过程中的某个时间 - 它将创建可能隐含但您没有创建的 Controller 和路由。例如...您的文件夹结构中没有 application.js 路由...但 Ember 在幕后的神秘区域中创建了它。这可能是为了让您不需要考虑表面积 - 如果您没有明确使用它。就像那个“路线”一样 - 它也会创建一个 Controller 。路由在模板渲染之前“输入” - 因为它需要定义模型之类的东西 - 顺便说一句/只是在可能不存在的上设置的属性(据您所知) 同名 Controller 。 ( 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 的前端大师类(class)详细介绍了这些内容。 https://frontendmasters.com/workshops/ember/ - 但你不只是在学习 Ember...你正在学习 Ember 的所有内容,比如 es2015 - 而且这个区域没有太多的同理心

如果你能解开最初的谜团 - Ember 会非常有趣。 :)

关于javascript - 当我们第一次使用 Ember JS 启动我们的应用程序时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48887818/

相关文章:

javascript - 自定义 Ember.js DS.RESTSerializer 的根元素

javascript - ember-data 悲惨错误重复记录

ember.js - 使用 DS.RESTAdapter 检查或内省(introspection) Ember 数据源的便捷方式

javascript - deferred.fail()后如何继续执行JS

javascript - 在 JavaScript 中将带有哈希值的十六进制字符串转换为带有 0x 的十六进制值的最佳方法?

javascript - 使用 PHP 和 JS 将 div = contenteditable 保存到 MySQL

ember.js - Rails 使用 ember-template-compiler 预编译失败

JavaScript 将命名函数分配给变量

python - ember-django-adapter 代码示例

javascript - 我怎样才能给 Ember 数据模型一个 TTL 并在它过期后重新加载它?