Angular6.0发布
Angular v6 新版本重点关注工具链以及工具链在 Angular 中的运行速度问题。
Angular v6 是统一整体框架、Material 和 CLI 三大 Angular 组件的第一个版本,此次更新更多地关注于工具链上,以使其具有更好的可移植性。
此次更新信息如下:
更新依赖关系:
@angular/core 现在依赖于:
- TypeScript 2.7
- RxJS 6.0.0
- tslib 1.9.0
@angular/platform-server 现在依赖于 Domino 2.0
特性的小改动:
- animations: 只能使用 WA-polyfill 和 AnimationBuilder
- animations: 在转换匹配器中暴露元素和参数
- common: 在 NgIf 中使用非模板元素时更好的错误消息
- common: 导出函数来格式化数字,百分数,货币和日期
- compiler: 实现“enableIvy”编译选项
- core: 添加绑定名称到内容更改错误
bug 修复:
- 即使在 noOp 动画期间也要报告正确的 totalTime 值
- 避免在路由器返回/刷新期间插入动画
- 修复增加/减少别名示例
- 修正 Observable 方法的映射
更新功能信息:
1. ng update
ng update <package> 是一个新的 CLI 命令,用于分析 package.json 并使用其关于 Angular 的知识来更新您的应用。请查看升级手册来查看其行为。
不仅可以使用 ng update来帮助您适配正确版本的依赖项,并保持依赖同步,而且第三方也可以使用 schematics 来提供 update 脚本命令。如果您的某个依赖库提供了 ng update 语法,在其有大更新的时候,就可以自动更新您的代码了。
ng update 并不会替换您的包管理器,而是使用 npm 或者 yarn在底层管理依赖,然后更新依赖,ng update 将对您的项目进行必要的转换。
例如,ng update @angular/core 将会更新所有的 Angular 框架包,比如:RxJS 和 TypeScript,并运行这些包中可用的 schematics 来保持最新。作为命令的一部分,我们将会自动安装 rxjs-compat 到您的应用中以平滑迁移。
我们期待更多的库和包在随后支持 ng update 语法,我们已经 听到一些企业库的团队在计划使用 ng update 来自动更新重要的变更升级,以减少开发时间。
学习更多关于如何使用 ng update , 开始学习如何创建您自己的 ng update 语法,可以参考 rxjs 的 package.json 的入口,它关联了 collection.json。
2. ng add
另一个新的 CLI 命令是 ng add,它可以使您添加新包变得更加容易。ng add 将使用您的包管理器来下载新的依赖项,并运行安装脚本(以 schematics 实现)。通过配置文件来更新项目。添加额外的依赖项(例如 polyfill 等),或者执行包特定的初始化代码。
可以在您的使用 ng new 创建的新项目上试一下下面的命令:
- ng add @angular/pwa, 通过为您的应用添加 manifest 文件和 service worker 将其转换为 PWA 项目
- ng add @ng-bootstrap/schematics, 将 ng-bootstrap 添加到项目中
- ng add @angular/metarial, 安装与设置 Angular Metarial ,并使用 ng generate 添加新的启动组件。
- ng add @clr/angular@next, 从 VMWare 安装和设置 Clarity。
- ng add @angular/elements, 为 Angular elements 安装 document-register-element.js 和依赖项。 由于 ng add 基于 schematics 和 Npm ,我们希望库和社区支持我们构建一个 ng add 支持包的生态圈。
请查看 Angular Metarial 的 ng add schemetic ,作为示例来帮助您开始创建您自己的 ng add。
3. Angular Elements
第一个版本的 Angular Elements 支持您在现有的 Angular 应用中通过注册 Angular Component 作为自定义元素。我们在 angular.io 内容管理系统中使用这种扩展能力,通过嵌入 HTML 来支持动态。这替换掉了手动启动 Angular 组件。
请查看注册 Angular Component 作为 custom element,或者学习更多的 Angular Elements.
已经有一个社区成员发布了 Angular Elements Quick Start, 我们非常建议您参考。
4. Angular Metarial + CDK component
最大的更新是增加了新的 tree 组件以显示层次结构,遵循 table 组件的模式,CDK 支持了核心 tree 指令,Angular Metarial 通过 Metarial Design 提供了一致的体验,我们最近提供了一个关于它的内容,可以参考(video, slide ).新的 tree 组件有两种风格:(Metarial 风格)mat-tree 和未修饰的版本 cdk-tree
除了 tree 组件之外,我们还提供了 badge 和 bottom-sheet-components。徽章用于显示小的帮助信息。例如未读项目数量等等,Bottom-sheet 是移动设备专用的对话框,通常用于提供一系列动作的选项。
@angular/cdk/overlay 是 CDK 中非常有用的包,在新的 v6 版中,其包含新的定位逻辑,以在各种场景下帮助弹出。
5. Angular Metarial Starter Components
一旦您执行 ng add @angular/metarial 将 Metarial 添加到您的项目中,您将得到 3 个新的 starter 组件:
Metarial SideNav 您现在可以生成一个包含 app 名称的 toolbar 和边栏导航的起步组件。
执行
ng generate @angular/material:material-nav
将会生成这样的起步组件。
Metarial Dashboard 您可以生成一个包含动态表格的卡片列表 。
执行
ng generate @angular/material:material-dashboard
可以生成这样的组件。
Material Data Table 您可以生成支持排序、分页的预配置 datasource 的数据表组件。
执行
ng generate @angular/material:material-table
将会生成这样的组件。
在这里查看更多资料:Angular Material Schematics
6. CLI Workspaces
Angular CLI v6 现在支持包含多个项目的工作空间,比如多个应用或者库。CLI 项目现在将使用 angular.json 来替代 .angular-cli.json 进行配置和构建。
每个 CLI 可以有多个项目,每个项目有 target, 每个 target 有配置文件。
{
"projects": {
"my-project-name“: {
"projectType": "application",
"architect": {
"build": {
"configurations”: {
"production": {},
"demo": {},
"staging": {},
}
},
"serve": {},
"extrace-i18n": {},
"test": {},
}
},
"my-project-name-e2e": {}
}
}
更多信息请参考:新的配置文件。
- 库的支持 被广泛请求的一个 CLI 特性现在支持了:创建和构建库。我很荣幸介绍它。
ng generate library <name>
该命令将会在您的 CLI 工作空间创建一个库项目,并配置其测试和构建。
更多信息请参考:使用 Angular CLI 创建库
8. Tree Shakable 提供器
为使您的应用尺寸更小,我们从模块引用服务变成了服务引用模块。这使得我们可以仅仅打包模块中注入到代码中的服务。
以前
@NgModule({
...
providers: [ MyService ]
})
export class AppModule {}
其中,服务的定义
import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
constructor() {}
}
以后的用法
不需要在模块中引用。
import { Injectable } from '@angular/core';
@Injectable( {
providedIn: 'root',
})
export class MyService {
constructor() {}
}
更多信息,参考依赖注入。
9. 动画性能改进
我们已经更新了动画实现,不再需要 Web animations polyfill ,这意味着您可以从应用中删除这个 polyfill,并节省大约 47K 的打包尺寸,同时提升了在 Safari 中的性能。
10. RxJS v6
Angular 已经升级到 RxJS v6。RxJS 是 Angular 的一个依赖项,其在几周前正式发布了 v6。RxJS v6 带来了多个重要的更新,还提供了反向兼容库 rxjs-compat,可以保持您的应用继续工作。
RxJS 进行了重新组织以便于 Tree shakable, 以确保只有用到的 RxJS 部分打包到应用中。
如果您使用 ng update, 您的应用将会保持工作,您可以从 RxJS 5.5 迁移到 6 得到更多信息。
11. 长期支持
我们扩展了我们的长期支持条款到所有主要发布版本。
以前,我们声明只有 v4-v6 是长期支持的版本。但是为了是的从某个主要版本升级到下一个更加容易,并给予大的项目更多的时间来计划升级,我们决定扩展到支持从 v4 开始的所有主要版本。
每个主要发布将会支持 18 个月,包括 6 个月的活动开发和 12 个月的关键 bug 修复和安全补丁。
更多信息可以参考 Angular 版本和发布。
12. 如何更新到 6.0.0
访问 update.angular.io 来得到升级应用的信息和指导。
Angular6.0发布的更多相关文章
- Visual Studio Code 1.0发布,支持中文在内9种语言
Visual Studio Code 1.0发布,支持中文在内的9种语言:Simplified Chinese, Traditional Chinese, French, German, Italia ...
- Apache Flume 1.7.0 发布,日志服务器
Apache Flume 1.7.0 发布了,Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 本次更 ...
- Percona Server 5.6.33-79.0 发布
Percona Server 5.6.33-79.0 发布了,该版本基于 MySQL 5.6.33,包含了所有的 bug 修复,是Percona Server 5.6 系列中的正式版本.该版本主要是修 ...
- Rubinius 2.0 发布,Ruby 虚拟机
Rubinius 2.0 发布了,官方发行说明请看这里. Rubinius是一个运行Ruby程序的虚拟机,其带有Ruby的核心库. Rubinius的设计决定了其调试功能的强大,使得在运行时常规的Ru ...
- Restful.Data v2.0发布,谢谢你们的支持和鼓励
v1.0发布后,承蒙各位博友们的热心关注,也给我不少意见和建议,在此我真诚的感谢 @冰麟轻武 等朋友,你们的支持和鼓励,是这个开源项目最大的推动力. v2.0在除了细枝末节外,在功能上主要做了一下更新 ...
- 网页动物园2.0发布,经过几个月的努力,采用JAVA编写!
网页动物园2.0发布,经过几个月的努力,采用JAVA编写! 网页动物园2.0 正式发布!游戏发布 游戏名称: 网页动物园插件 游戏来源: 原创插件 适用版本: Discuz! X1.5 - X3.5 ...
- Redisson-Parent 2.5.0 和 3.0.0 发布
Redisson-Parent 2.5.0 和 3.0.0 发布了,Redisson 是基于 Redis 服务之上构建的分布式.可伸缩的 Java 数据结构,高级的 Redis 客户端. Rediss ...
- Rsync 3.1.0 发布,文件同步工具
文件同步工具Rsync 3.1.0发布.2013-09-29 上一个版本还是2011-09-23的3.0.9 过了2年多.Rsync基本是Linux上文件同步的标准了,也可以和inotify配合做实时 ...
- EasyCriteria 3.0 发布
EasyCriteria 3.0 发布了,这是一个全新的版本,进行了大量的重构.官方发行说明请看:http://uaihebert.com/?p=1898 EasyCriteria 是一个轻量级的框架 ...
随机推荐
- 学习笔记-JS公开课一
JS公开课笔记 没特别说明就是和Java语言一样. JS变量:弱类型语言 1.在JS中,true表示1,false表示0.和Java不一样. 2. var y: 提示undefined: 3.如果al ...
- Web Service进阶(一)运行原理
利用清明小假期,温习了一遍Web Service的相关内容,对其工作原理进行了简要总结.以供有需求的朋友和自己日后参考.文章若有不当之处,敬请朋友们提出宝贵建议,以求共勉. Web服务中,我们应该首先 ...
- Dynamics CRM2013 注释中的内容无法正常显示问题
CRM2013中在表单中插入注释,并把注释设置成默认选项卡后 打开一个已经挂了附件的表单,但却显示找不到记录 必须要再点击下注释,内容才会出来 查了半天不得其解,终于在ur1 for CRM2013 ...
- pig代码格式上小注意
1,%default file test.txt 中不要用引号,'' 和""都不行.'file'不会被识别 2,pig判断相等,用==,不是一个=.. 3,pig中只用单引号,不用 ...
- Linux中的查找命令find
原文:http://blog.csdn.net/windone0109/article/details/2817792 查找目录:find /(查找范围) -name '查找关键字' -type d ...
- C# 运行时序列化
一. 序列化与反序列的作用 为什么要有序列化呢,考虑下面这种情况,在WINFORM或者更为方便的WPF工程中,当我们进行UI设计时,可以随意的将一个控件剪切/张贴到另外一个地方.操作方便的背后是什么在 ...
- UML 类图. 对象图. 接口图. 用例图 .包,参与者. 依赖关系. 泛化/继承关系. 关联关系 .聚合/聚集关系. 实现关系 组合关系。
结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示 类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象. 左 ...
- Uva - 506 - System Dependencies
模拟题,注意显示安装和隐式安装,显示安装的必须显示显示删除.把名字转化为整数维护.其他注意都注释了.输入稍微多一下,题目不是很麻烦. AC代码: #include <iostream> # ...
- Linux的启动流程 (二)
引:本文以RedHat9.0和i386平台为例,剖析了从用户打开电源直到屏幕出现命令行提示符的整个Linux启动过程.并且介绍了启动中涉及到的各种文件.阅读Linux源代码,无疑是深入学习Linux的 ...
- Android Studio环境下搭建ReactNative
1.安装Android Studio首先肯定是 安装Android Studio(包含SDK)(国内推荐)ps:这里有一点要注意,需要为SDK配置环境变量,名称必须为ANDROID_HOME 2.安装 ...