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 相关文章推荐
游戏人文件夹程序 ver 4.03
Jul 14 Javascript
js获取单选按钮的数据
Nov 27 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
Nov 27 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
Dec 24 Javascript
纯JS前端实现分页代码
Jun 21 Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 Javascript
js 判断一个数字是不是2的n次方幂的实例
Nov 26 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
基于jQuery实现挂号平台首页源码
Jan 06 jQuery
vue使用watch监听属性变化
Apr 30 Vue.js
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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
windows平台中配置nginx+php环境
2015/12/06 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
2016/04/06 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
nodejs微信开发之自动回复的实现
2019/03/17 NodeJs
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
js代码实现轮播图
2020/05/04 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
行政管理人员精品工作推荐信
2013/11/04 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
公司委托书怎么写
2014/08/02 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
2015年售票员工作总结
2015/04/29 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
php7中停止php-fpm服务的方法详解
2021/05/09 PHP