零、序言

网络发展很快。技术来了又去,每隔几年,新的想法就会出现并广受欢迎,但过了一段时间,就会被其他东西所取代。

如果您从事 web 开发已经很多年了,那么很可能您已经看到了这种循环的继续。原型(Prototype)和 jQuery 等东西在 21 世纪中期广受欢迎,如今仍在许多项目中使用。

然后,随着浏览器和 JavaScript 引擎的性能越来越好,过去十年左右出现了许多成熟的、基于 JavaScript 的前端框架,如 Angular 和 Durandal。最近,基于不同概念或范式的现代框架(如 React 和 Polymer)得到了广泛的应用。

奥雷利亚就是这样一个现代的框架。它是 Durandal 之父 Rob Eisenberg 的创意,基于尖端的 Web 标准,基于现代软件架构概念和思想,提供强大的工具集和令人敬畏的开发体验。

这本书涵盖的内容

第 1 章入门,引导您了解 Aurelia 的基本概念,并解释如何设置环境和启动项目。

第 2 章布局、菜单和熟悉深入探讨了 Aurelia 的核心概念,如依赖注入、日志记录和插件系统。它还解释了如何创建多页应用的主布局和导航菜单。

第三章显示数据引导您通过模板和数据绑定系统,可以构建复杂视图。

第 4 章表单以及如何验证它们在前一章的基础上,展示了如何构建丰富的表单以及如何使用 Aurelia 灵活而强大的验证机制。它还探讨了不同的版本模型,如内联版本或基于对话框的版本。

第 5 章制作可重用组件展示了如何构建可重用的 Aurelia 组件,如自定义 HTML 元素和属性。它还解释了如何利用 Aurelia 支持的一些尖端 Web 标准,如 ShadowDOM 和内容投影。

第 6 章设计关注点——组织和解耦将引导您以不同的方式组织和构建 Aurelia 应用。本文还讨论了管理解耦组件之间通信的各种技术。

第 7 章测试所有东西,教您如何为 Aurelia 应用编写和运行自动测试,包括单元测试和端到端测试。

第 8 章国际化向您展示了如何国际化文本以及各种数据类型的格式,如日期和数字。

第 9 章动画教您如何使用 CSS 制作视图转换动画,并介绍了通用动画 API,因此您可以使用更丰富的动画插件。

第 10 章生产捆绑向您展示了如何通过将应用打包成一个或多个捆绑包来优化生产。

第 11 章与其他库的集成给出了如何将各种 UI 库集成到应用中的示例,如引导窗口小部件、jQuery UI、D3 和聚合组件。

附录 A使用 JSPM向您展示了如何使用 SystemJS 和 JSPM 开发、构建和绑定 Aurelia 应用。

附录 B使用 Webpack向您展示了如何使用 Webpack 开发、构建和绑定 Aurelia 应用。

这本书你需要什么

为了最大限度地享受,您需要一台运行 Windows、Linux 或 Mac OS X 的 PC/笔记本电脑、一个互联网连接和一个现代浏览器。所有的代码样本都是使用 GoogleChrome 开发和测试的;因此,它是推荐的浏览器。

本书中提到的所有软件都是免费的,可以从互联网上下载。

这本书是给谁的

本书面向所有开发人员,他们要么热衷于学习使用 Aurelia 构建单页应用,要么只是对框架感到好奇。了解一些 JavaScript 知识是学习本书的理想选择;然而,如果你是 JS 新手,你会学到很多基础知识。

公约

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“因此,在aurelia_project/aurelia.json文件中的build部分的bundles下,让我们将以下条目添加到名为vendor-bundle.js的包的dependencies中:

代码块设置如下:

{ 
  "name": "aurelia-i18n", 
  "path": "../node_modules/aurelia-i18n/dist/amd", 
  "main": "aurelia-i18n" 
}, 
{ 
  "name": "i18next", 
  "path": "../node_modules/i18next/dist/umd", 
  "main": "i18next" 
}, 
{ 
  "name": "i18next-xhr-backend", 
  "path": "../node_modules/i18next-xhr-backend/dist/umd", 
  "main": "i18nextXHRBackend" 
},

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

<template> 
  <h1 t="404.title"></h1> 
  <p t="404.explanation"></p> 
</template>

任何命令行输入或输出的编写方式如下:

> npm install aurelia-i18n i18next --save

新术语和重要词语以粗体显示。您在屏幕上看到的单词,例如,在菜单或对话框中,出现在文本中,如下所示:“此时,如果您运行应用,请单击新建按钮,例如,在生日文本框中放入胡言乱语,然后尝试保存。”

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送一般反馈,只需发送电子邮件 feedback@packtpub.com,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的账户下载示例代码文件 http://www.packtpub.com 对于您购买的所有 Packt 发布书籍。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的支架选项卡上。
  3. 点击代码下载&勘误表
  4. 搜索框中输入图书名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载

您也可以通过点击 Packt 发布网站上该书网页上的代码文件按钮下载代码文件。可以通过在搜索框中输入图书名称来访问此页面。请注意,您需要登录到您的 Packt 帐户。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Learning-Aurelia 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表单链接,然后输入勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请联系我们 copyright@packtpub.com 与怀疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有疑问,请联系我们 questions@packtpub.com,我们会尽力解决这个问题。