⑴Ember.js是一款非常专业且优秀的JavaScript框架,可使用该框架构建现代Web应用程序,该框架最大的特点就是高效,而且经过了实践检验,非常适合开发人员使用,提供了丰富且强大的功能,便于管理现代Web应用程序,可有效帮助开发团队提高生产力,也可用于构建在浏览器中运行,可以将HTML文件复制到Ember应用程序中的中央模板文件中,并可以通过在终端中运行来提供应用程序服务,从而使得您的应用程序本地副本可在Web浏览器中查看,Ember.js也可以与任何类型的后端一起使用,欢迎有需要的用户下载体验
⑵Ember CLI
⑶一个强大的开发工具包,用于创建,开发和构建Ember应用程序。从CLI指南中了解基本命令。
⑷Ember应用程序中使用的基本结构,用于创建可重用的UI元素并定义应用程序的布局和功能。
⑸Ember应用程序的核心部分。使开发人员能够从URL驱动应用程序状态。
⑹在应用程序中存储长期状态并将其传递的方式。
⑺Ember数据提供了与外部API进行通信和管理应用程序状态的一致方式
⑻Inspector-浏览器扩展或书签,用于实时检查您的应用程序。这对于在野外发现Ember应用程序,尝试安装它并打开NASA网站也很有用!
⑼Ember的开箱即用的经验,让您在第一天就开始建立并保持多年的运输。受益于我们多年的经验,帮助您的团队更快地提高工作效率。您再也不需要将您自己的框架连接在一起了。
⑽CLI是现代Ember应用的骨干,提供代码生成器来创建新的实体,并每次都将必要的文件放在正确的位置。Ember应用程序有一个内置的开发环境,包括快速重建自动重载和测试运行器。
⑾准备好部署了吗?这也很简单--只需一个命令就可以为生产建立你的应用程序。
⑿URL一直是网络的主要优势之一,Ember应用也尊重这一点。Ember内置的路由器是一流的解决方案,它将异步数据加载与动态url段和查询参数相结合。Ember路由器无缝支持嵌套的URL,具有增量数据获取嵌套加载和错误分词的功能。
⒀虽然您可以为您的应用程序使用任何数据层,但每个新的Ember应用程序都包含一个功能齐全的数据访问库,称为Ember Data。
⒁Ember Data允许您一次访问多个来源的数据,设置异步关系,并在您的应用程序中保持模型的更新。
⒂享受每个应用程序默认内置的全功能现代化的测试束。每当Ember应用中生成一个实体,也会为该实体生成测试。Ember应用程序支持三个级别的测试,方便测试从单个组件到验收测试的所有内容,验收测试可以启动你的整个应用程序并与之交互,以验证一切都在正常工作。
⒃测试也可以在浏览器中运行,提供额外的安心。
⒄Ember是建立在Glimmer渲染引擎上的,Glimmer渲染引擎是目前市场上最快的渲染技术之一,这要归功于它将模板编译成高性能的虚拟机的方式。
⒅由于我们的整体性能方法,性能升级通常是免费的,不需要额外的工作!
⒆Ember遵循周的发布周期,每周发布一个新的小版本。由于对稳定性的坚定承诺,小版本之间的升级是直接和快速的。考虑周全的废弃机制会给你足够的警告,让你知道哪些代码需要在下一个主要版本中进行修改,废弃的或升级的功能通常会附带codemod,可以运行这些codemod来自动更新你的代码库。
⒇您可以使用Node.js软件包管理器npm的单个命令安装Ember。在您的终端中输入以下内容:
⒈创建一个新的应用程序
⒉通过npm安装Ember CLI后,您将可以ember在终端中访问新命令。您可以使用该ember new命令来创建新的应用程序。
⒊这个命令将创建一个名为的新目录,ember-quickstart并在其中建立一个新的Ember应用程序。该--lang
⒋en选项将应用程序的主要语言设置为英语,以帮助改善可访问性。开箱即用,您的应用程序将包括:
⒌JavaScript和CSS压缩。
⒍通天塔的现代特色。
⒎通过以集成的软件包提供构建生产就绪的Web应用程序所需的一切,Ember使开始新项目变得轻而易举。
⒏让我们确保一切正常。 cd进入应用程序目录ember-quickstart并通过键入以下命令启动开发服务器:
⒐几秒钟后,您应该看到如下所示的输出:
⒑(要随时停止服务器,请在终端中键入Ctrl-C。
⒒在您选择的浏览器中打开。您应该看到一个Ember欢迎页面,而没有其他内容。
⒓恭喜你!您刚刚创建并启动了第一个Ember应用程序。
⒔在模板中编写一些HTML
⒕我们将从编辑application模板开始。用户加载您的应用程序时,该模板始终显示在屏幕上。在编辑器中,打开app/templates/application.hbs并将其更改为以下内容:
⒖Ember检测到更改后的文件,并在后台自动为您重新加载页面。您应该看到欢迎页面已被“
⒗PeopleTracker”替换。您还{{outlet}}向此页面添加了,这意味着所有路由都将在该位置呈现。
⒘让我们构建一个显示科学家列表的应用程序。为此,第一步是创建一条路线。现在,您可以将路由视为组成您的应用程序的不同页面。
⒙Ember带有生成器,用于自动执行常见任务的样板代码。要生成路线,请在ember-quickstart目录的新终端窗口中键入以下内容:
⒚您将看到如下输出:
⒛那是Ember告诉您它已经创建了:
①用户访问时要显示的模板/scientists。
②一个Route是获取由模板中使用的模型对象。
③应用程序路由器中的一项(位于中app/router.js。
④此路线的单元测试。
⑤在中打开新创建的模板,app/templates/scientists.hbs然后添加以下HTML:
⑥在浏览器中,打开你应该看到
⑦我们把在scientists.hbs模板正下方的
⑧从我们的application.hbs模板。
⑨由于科学家路线嵌套在应用程序路线下,因此Ember会将其内容呈现在应用程序路线模板的{{outlet}}指令中。
⑩现在我们已经有了scientists模板渲染,让我们给它一些数据进行渲染。为此,我们可以为该路线指定一个模型,也可以通过编辑来指定一个模型app/routes/scientists.js。
Ⅰ我们将使用生成器为我们创建的代码,并向中添加一个model()方法Route:
Ⅱ此代码示例使用JavaScript的称为类的功能。了解有关最新JavaScript功能的概述,以了解更多信息。
Ⅲ在路线的model()方法中,您返回要提供给模板的所有数据。如果您需要异步获取数据,则该model()方法支持使用JavaScript
ⅣPromises的任何库。
Ⅴ现在,让我们告诉Ember如何将字符串数组转换为HTML。打开scientists模板并添加以下代码以遍历数组并打印:
Ⅵ在这里,我们使用each
Ⅶ帮助程序来循环从model()挂钩提供的数组中的每个项目。对于数组中的每个项目(本例中的每个科学家,Ember都会渲染一次包含在帮助器中的块{{#each}}...{{/each}}。当前正被呈现的项目(科学家将在被提供scientist可变的,并标示为
Ⅷas |scientist|在each帮手。
Ⅸ最终结果是,无序列表
Ⅹ中的数组中将有一个元素对应于每个科学家
㈠创建一个UI组件
㈡随着应用程序的增长,您会注意到您正在多个页面之间共享UI元素,或者在同一页面上多次使用它们。使用Ember可以轻松地将模板重构为可重用的组件。
㈢让我们创建一个可在多个地方使用的组件,以显示人员列表。
㈣像往常一样,有一个发电机使我们很容易做到这一点。通过键入以下内容来制作新组件:
㈤将scientists模板复制并粘贴到组件的模板中,然后对其进行编辑,如下所示:
㈥请注意,我们已将标题从硬编码字符串(“科学家名单”更改为{{title}}。该表明title的是,将被传递到组件,这使得它更容易重复使用相同的组件中,我们正在构建的应用程序的其他部分的参数。
㈦我们还重命名scientist为更通用的person,从而减少了组件与使用位置之间的耦合。
㈧根据文件系统上的名称,我们的组件称为。请注意,字母P和L大写。