AngularJS 2.0新特性有哪些_AngularJS

AngularJS已然成为Web应用开发世界里最受欢迎的开源JavaScript框架。自成立以来,见证其成功的是惊人的经济增长以及团体的支持与采用——包括个人开发者、企业、社区。

Angular已经变成一个构建复杂单页面应用的客户端MVW框架(Model-View-Whatever)。它在应用测试和应用编写方面都扮演重要角色,同时简化了开发过程。

Angular目前的版本为1.3,该版本稳定,并被谷歌(框架维护者)用于支持众多应用(据估计,在谷歌有超过1600个应用运行于Angular1.2或1.3)。Angular 2.0正式宣布与去年10月份的尼日利亚会议上,该版本不会是一个复杂的重大更新。

为什么推出Angular 2.0?

在进一步讨论Angular 2.0(估计发布日期为2015年底)之前,让我们简单的思考下新版本背后的哲学。Angular 2.0开发始于解决以下问题:

移动:新的版本将专注于移动应用的开发。依据是它更容易处理桌面方面的事情,一旦挑战涉及到移动(性能、加载时间),注重这方面会使问题得到解决。

模块化:各个模块将从Angular的核心中移除,从而获得更好的性能。这意味着你可以选择你需要的零件。
现代化:Angular 2.0将把ES6和“常青”现代浏览器(自动更新到最新版本)作为目标。这意味着开发者可以专注于业务领域相关的代码。

有哪些争议?

在尼日利亚会议上并没有提及迁移到2.0版本的途径。同时也指出跳转到2.0版本将会打破原有的1.3版本应用,不会有任何的向后兼容性。自从那时开始开发者社区一直充斥着不确定性和猜测,一些开发者也开始质疑是否值得开始一个新的Angular 1.3项目。

有哪些改变?

AtScript

AtScript是ES6的一个父集,被用于开发Angular 2.0。它是由Traceur编译器(连同ES6)处理来生成ES5代码并用TypeScript类型语法来生成执行时间的断言,以此来代替编译时的检查。不过AtScript并不是强制的,你仍然能够使用纯JavaScript/ES5代码代替AtScript来编写Angular应用。

改善依赖入驻(DI)

依赖注入(Dependency injection )模式的基本思想是客户类Client不用自己来初始化它所依赖的成员变量IServer,使用一个独立的对象创建IServer适当的实现类并将它赋值给Client的成员变量。它对模块开发与组件隔离特别有益。Angular 2.0将会解决Angular 1.X所存在的这个方面的问题。添加丢失的的特性,如child injectors和lifetime/scope控制。

Annotations

AtScript提供工具关联元数据和功能。这有助于构建提供必要信息到DI库的对象实例(检查相关元数据时调用一个函数或创建一个类的实例)。它还容易通过提供一个注解重载参数数据。

Child Injectors

一个child injector继承了其父类的所有性能服务。根据要求,不同类型的对象可以被调用,并且自动覆盖不同的范围。

实例范围

改进的DI库将以实例范围为特性,这在使用Child Injectors和自己的范围标识符时变得更加强大。

模板和数据绑定

在开发应用中,模板和数据绑定将齐头并进。

动态载入

这是当前Angular版本所缺失的一个特性,不过将在Angular 2.0中出现。这将让开发者可以在忙碌中添加新的指令或控制器。

模板

在Angular 2.0中,模板编译过程将是异步的。由于代码是基于ES6模块规格,该模块加载器将通过简单的引用组件定义来加载依赖关系。

指令

在Angular 2.0中将会出现三种指令:

组件指令——这些将通过JavaScript、HTML或一个可选的CSS样式表的封装逻辑创建可重复使用的组件。

装饰指令——这些指令将被用来装饰元素(例如添加一个工具提示,或使用ng-show/ng-hide来显示/隐藏元素)。

模板指令——这些将把HTML改变为可重复使用的模板。模板的实例化以及嵌入到DOM可以完全由指令控制。这样的例子包括ng-if和ng-repeat。

路由方案

初始的Angular路由是被设计用于处理一些简单的情况。然而,随着框架的发展,越来越多的功能被添加。在Angular 2.0中路由已经是可扩展的,它将包含以下基本功能:

简单的基于json路由配置;

优于配置的可选协定;

静态的。参数化的路由模式;

URL解析器;

支持查询字符串;

使用推送状态或Hashchange;

导航模型(生成一个导航UI);

文档标题更新;

404路由处理;

位置服务;

历史操作。

现在,让我们来看看那些让Angular 2.0达到新高度的路由特性:

子路由

子路由将把应用的每个组件通过为它们提供各自路由的方式转换成更小的应用,这将有助于封装整个应用的特性集。

屏幕激活

这将帮助开发者通过一组can*回调更出色的控制导航的生命周期:

canActivate——允许/阻止导航到新的控制器;

activate——响应成功到新的控制器的导航;

canDeactivate——允许/阻止导航远离旧的控制器;

deactivate——响应成功远离旧的控制器的导航;

这些回调将允许开发者返回Boolean值或一个命令(为了更低层次上的控制)。

设计

所有的这些逻辑都是使用流水线结构构建的,使得它非常容易将自己的步骤添加到流水线中或移除默认的东西。此外,它的异步特性将允许开发者使用服务器请求进行身份验证或为控制器加载数据,不过这还在规划中。

日志

Angular 2.0将包含一个被称为diary.js的日志服务——一个非常有用的特性,测量你在应用中时间花费在哪里。

Scope

$scope将从Angular 2.0中移除,取而代之的是ES6类。

结论

随着发布日期的临近,围绕Angular 2.0的兴奋和声音将会加剧。是否打破改变是一件好事?我们无法知道,不过反对者感到紧张是可以理解的,因为明显缺乏迁移的计划。Duang的一下就来了。不过其既然要来了,我们可以做的就是积极的迎接它。

以上内容给大家介绍了AngularJS 2.0新特性,希望对大家有所帮助!

时间: 2024-09-16 03:33:44

AngularJS 2.0新特性有哪些_AngularJS的相关文章

MySQL 5.0 新特性--存储过程

Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握. Conventions and St

MySQL5.0新特性教程 存储过程:第三讲

The New SQL Statements 新SQL语句 Variables 变量 在复合语句中声明变量的指令是DECLARE. (1) Example with two DECLARE statements 两个DECLARE语句的例子 WHILE ... END WHILE CREATE PROCEDURE p8 () BEGIN DECLARE a INT; DECLARE b INT; SET a = 5; SET b = 5; INSERT INTO t VALUES (a); SE

PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性

前言    今天突然想到PHP官方网站上一转,一眼就看到PHP5推出的通告.虽然以前看到过PHP5的预告,但还是仔细看了PHP 5/Zend Engine 2.0新特性一文,一股JAVA气息扑面而来...   特将该文试译出来,首发于CSDN网站,以飨读者. PHP 5/Zend Engine 2.0新特性徐唤春 译 sfwebsite@hotmail.comhttp://www.php.net/zend-engine-2.php 全新的对象模型PHP中的对象处理部分已完全重写,具有更佳的性能和

MySQL 5.0新特性教程 存储过程:第一讲

mysql|存储过程|教程 作者:mysql AB;翻译:陈朋奕 Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着

ASP 3.0新特性概要

 ASP 3.0新特性概要 在ASP3.0中,有一些新的特性或经历较大的变化或改进的特性.1. 无脚本的ASPASP处理不包括任何脚本的.asp页的速度是很快的,假如你正在创建的站点或Web应用程序文件最终可能使用ASP,最好让这些文件使用.asp文件扩展名,而不用考虑它们是包含服务器端脚本还是仅仅包含静态(HTML和文本)内容. 2. 新的流向控制能力到目前为止,假如想把执行转向另外的一个ASP页,不得不使用Response.Redirect语句,这个工作通过向客户端发送一个响应来指示其载入新

MySQL 5.0新特性教程 存储过程:第一讲

Introduction 简介 MySQL 5.0 新特性教程是为需要了解5.0版本新特性的MySQL老用户而写的.简单的来说是介绍了"存储过程.触发器.视图.信息架构视图",在此感谢译者陈朋奕的努力. 希望这本书能像内行专家那样与您进行对话,用简单的问题.例子让你学到需要的知识.为了达到这样的目的,我会从每一个细节开始慢慢的为大家建立概念,最后会给大家展示较大的实用例,在学习之前也许大家会认为这个用例很难,但是只要跟着课程去学,相信很快就能掌握. Conventions and St

Servlet 3.0新特性详解

简介:Servlet 是 Java EE 规范体系的重要组成部分,也是 Java 开发人员必须具备的基础技能, Servlet 3.0 是 Servlet 规范的最新版本.本文主要介绍了 Servlet 3.0 引入的若干重要新特性,包括 异步处理.新增的注解支持.可插性支持等等,为读者顺利向新版本过渡扫清障碍. Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本 (Servlet 2.5

c# 6.0新特性(一)

写在前面 接近年底了,基本上没什么活了,就学点新东西,就想着了解下c# 6.0的新特性.在code project上看到了一篇不错的文章,就准备翻译一下,顺便照着学习学习.废话不多说,直奔主题. 原文地址:http://www.codeproject.com/Articles/1070659/All-About-Csharp-New-Features 简介 众所周知,c# 6.0 是在visual studio 2015中引入的.在其他的几个版本中同样引入一些特性,比如在c# 3.0中引入了li

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比

WebSphere Application Server V7.0新特性及各Java EE标准版本支持之对比 Application Server Network Deployment, Version 7.0 Operating Systems: AIX, HP-UX, i5/OS, Linux, Solaris, Windows, z/OS Specifications and API documentation 对比的WebSphere版本如下: Version 7.0 Version 6