Angular5.1新功能分享


Posted in Javascript onDecember 21, 2017

本篇文章通过介绍Angular5.1新特性给大家详细分享了的5.1改进和增加的内容,以下是全部内容:

新特性

Angular Material和CDK稳定版

CLI中支持Service Worker

在CLI中改进了Universal和AppShell的支持

改进了装饰器的错误信息

支持TypeScript2.5

有关功能和bug修复的完整列表,请参阅Angular,Material和CLI的更新日志。

Angular Material和CDK稳定版

在发布了11个alpha版本,12个beta版本以及3个候选版本之后,我们很高兴现在能够标记Angular Material和Angular CDK的5.0.0的稳定版。基于Google的Material Design视觉设计语言,Angular Material提供了30个UI组件给你的Angular应用。组合使用Angular CDK,Angular CDK(组件开发工具包)提供了一组构建模块,帮组您构建自己的定制组件,而不需要再次解决常见问题。这些组件已经被许多GOogle应用程序(包括Google Analytics套件,Google云平台开发人员控制台以及Google Shopping Express)用于生产。

从这个版本开始,Angular Material将遵循与Angular相同的语义化哲学,主版本的Angular Materital和Angular CDK同时作为其它平台的主版本发布。bug修复的版本将按照每周的迭代进行,而次版本将在功能完成时发布。

访问matrial.angular.io获取文档,演示和我们的入门指南。你还可以在Github上跟进我们的进度,因为我们将继续为框架添加更多类容。在接下来的几个月中,请关注诸如新的mat-tree,virtual scrolling,组件测试套件以及拖放功能。

CLI1.6的Service Worker支持

性能一直是Web开发人员的一个重要目标,在今天的局域网WIFI和移动网络事件中,性能一直是一个重要的目标。现代浏览器有一个新的API用于构建可靠且快速加载的站点,称为Service Worker API。

Angular5.0.0附带了一个为Angular应用程序定制的新的Service Worker实现,而Angular CLI 1.6包含了支持利用这个新特性构建应用的功能。使用@angular/service-worker可以提升你的应用的加载性能在支持该API的浏览器中,以及使你的应用的加载体验更像是本地app。

在我们的文档网站中,学习更多关于Angular Service的内容。

CLI1.6 改进Universal和App Shell支持

此外,随着Angular CLI1.6的发布,更好的通过Schematics将Universal添加到你现有的项目中,并为App Shell提供支持。

Angular Universal

添加Universal到你当前的CLI项目中,你可以在你的项目目录下使用下面的命令:

npm generate universal <name>

用你想给你的应用程序的名字替换<name>。这将会采用你采用的应用程序,并创建一个通用的模块,并为你自动配置你的angular-cli.json文件。然后你可以跳到我们的指南中的第4步使用Universal。

要构建你的Universal应用,只需要运行以下命令:

ng build --app=<name>

App Shell

额外添加的功能是对App Shell的支持。现在你可以生成和构建一个应用shell,它使用Universal来为你的应用构建一个静态的首次渲染在你的index.html页面中。当你的应用程序正在启动时,这会给用户更好的体验。

首先,确保在你的应用中的NgModule中有一个RouterModule的模块被导入,以及有一个<router-outlet></router-outlet>在你应用组件的模块中。App Shell使用路由来渲染你的应用。

运行以下命令:

ng generate app-shell [ --universal-app <universal-app-name>] [ --route <route>]

通过传递app-shell参数,将对主应用程序的all shell的支持添加到你的angular-cli.json文件中。如果Universal应用没有通过,则第一次运行Universal Schematic的时候会创建一个Universal应用。路由参数指定了在生成应用期间生成的路由配置。(App Shell需要有路由的支持)。默认是/shell。

完成这一步之后,只需要使用ng build就可以正常构建应用程序,index.html文件将包含自动渲染的路由。

改进的装饰器错误信息

由编译器产生的诊断已经得到了明显的改善,特别是当装饰器包含不支持或不正确的表达式的时候。

例如:调用一个函数来处理模板是不支持的。

@Component({
 template: genTemplate()
})

这是以前会产生的错误:

Error encountered resolving symbol values statically. Calling function ‘genTemplate', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol MyComponent in components.ts, resolving symbol MyComponent in components.ts

这个错误已经得到改善,并澄清了问题的来源和性质。

component.ts(9,16): Error during template compile of 'MyComponent'.
 Function calls are not supported in decorators but 'genTemplate' was called.

支持TypeScript 2.5

我们已经添加了TypeScript 2.5的支持,这是所有的开发人员推荐的。这个TypeScript版本包含了几个有用的高级功能。

你可以升级你的Typescript通过yarn add typescript@'~2.5.3'或者npm install typescript@'~2.5.3'。

这个更新是可选的,TypeScript 2.4继续支持Angular 5.X我们还不支持TypeScript 2.6。我们的计划实在未来的次版本中添加支持。

<stong>重要提示:</stong>如果你的代码使用injector.get(Token),Token有静态成员,那么你将遇到TypeScript的问题,返回的类型是{}而不是Token。你可以使用Injector.get<Token>(Token)来获得争取的返回值。

Javascript 相关文章推荐
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
js封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
js select option对象小结
Dec 20 Javascript
JS获取屏幕高度的简单实现代码
May 24 Javascript
详解js的事件处理函数和动态创建html标记方法
Dec 16 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
关于foreach循环中遇到的问题小结
May 08 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
Sep 20 Javascript
Vue CLI3基础学习之pages构建多页应用
Jun 02 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
Mar 02 Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 #Javascript
webpack写jquery插件的环境配置
Dec 21 #jQuery
基于Vue 2.0的模块化前端 UI 组件库小结
Dec 21 #Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
Dec 21 #Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
Dec 20 #Javascript
代码详解Vuejs响应式原理
Dec 20 #Javascript
详解Javascript 中的 class、构造函数、工厂函数
Dec 20 #Javascript
You might like
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
javascript实现动态标签云
2015/10/16 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
JavaScript生成验证码并实现验证功能
2016/09/24 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
layui监听下拉选框选中值变化的方法(包含监听普通下拉选框)
2019/09/24 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
基于Python函数的作用域规则和闭包(详解)
2017/11/29 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
2020/02/20 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
如何用PyPy让你的Python代码运行得更快
2020/12/02 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
护士自荐信怎么写
2013/10/18 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
代理人委托书
2014/08/01 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python