专业的编程技术博客社区

网站首页 > 博客文章 正文

Angular 5.0的脚步正在步步逼近,你准备好了吗?

baijin 2024-08-15 16:58:45 博客文章 3 ℃ 0 评论

到目前为止,我们对Angular 5了解什么? Beta阶段正在全面展开! Angular团队发布了beta.5版,有很多更新要看:它包含11个bug修复,8个功能更新和许多突破性变化。有一件事是确定的——第6个beta版本与Angular 4相比有更加突出的变化,包括功能和bug修复列表。

让我们来看看都有哪些突破性变化:

router:RouterOutlet属性locationInjector和locationFactoryResolver已被删除,因为v4之后已被弃用。

compiler: - @ angular / platform-server现在另外依赖于@ angular / platform-browser-dynamic作为对等依赖关系。

common:由于多个bug和浏览器不一致,我们删除了intl api,有利于从Unicode通用区域设置数据存储库(CLDR)导出的数据。不幸的是,我们不得不改变i18npipes(日期,数量,货币,百分比),还有一些突破性变化。

i18npipes改变:

Angular现在默认只包含en-US的语言环境数据,如果将LOCALE_ID的值设置为另一个语言环境,则必须为此语言导入新的语言环境数据,因为不再使用intl API。

特点:

  • 程序员不需要使用Angular的intl polyfill 。

  • i18n pipes现在有一个额外的参数区域设置,允许使用特定的区域设置,而不是令牌LOCALE_ID(默认值为en-US)中定义的区域设置。

  • 从CLDR提取的新语言环境数据也可供程序员使用,可以通过API使用(这对于库开发者尤其有用)。

  • 现在仍然可以使用旧pipes,但其名称已更改,并且不再包含在CommonModule中。要使用它们,必须在CommonModule之后导入DeprecatedI18NPipesModule(顺序很重要):

不要忘记,如果要使用这些不推荐使用的管道,仍然需要导入intl API polyfill。

Date pipe改变:

预定义格式(short,shortTime,shortDate,medium,...)现在使用CLDR给出的模式(就像在AngularJS中一样),而不是intl API中的模式。程序员可能会注意到一些变化,例如shortDate将是8/15/17而不是en-US的8/15/2017 。

  • 年的狭义版本是GGGGG而不是G,格式G现在类似于GG和GGG。

  • 月的狭义版本是MMMMM而不是L,格式L现在是短的独立版本的月份。

  • 周的狭义版本现在是EEEEE而不是E,格式E现在类似于EE和EEE。

  • 时区z现在将回退到O并输出GMT + 1而不是完整的区域名称(例如太平洋标准时间),这是因为在所有现有区域设置中拥有所有区域名称所需的数据量太大。

  • 时区Z现在将输出ISO8601基本格式,例如+0100,现在应该使用ZZZZ获得GMT + 01:00。

特点:

  • 新的预定格式long,full,longTime,fullTime。

  • 现在支持yyy的格式,例如52年将是052年,2017年将是2017年。

  • 现在,L?LLLLL格式支持独立的月份。

  • 一年的第几个周现在支持格式w和ww,例如weeks 5和05。

  • 一个月的第几周现在支持格式W,例如week 3。

  • 现在,格式S到SSS支持小数秒。

  • AM / PM日期现在支持其他格式aa,aaa,aaaa和aaaaa。而aaaa格式是类似的,aaaa是可用的宽版本(例如am的前缀meridiem),或等价于aotherwise,aaaaa是狭义版本(例如,for am)。

  • 现在,格式b到bbbbb(以及独立等价的B到BBBBB)现在支持morning, noon, afternoon, ….

  • 现在可以使用O至OOOO格式的非本地化时区。格式O到OOO将输出GMT+1,而格式为OOOO 将是GMT+01:00。

  • ISO8601基本时区现在可以使用格式Z到ZZZZZ。格式Z到ZZZ将输出+0100,格式ZZZZ将为GMT + 01:00,ZZZZZ为+01:00。

Bug修复

日期管道现在所有浏览器上都可以正常工作,这将修复在safari和IE上的大量错误。

eras现在可以自己使用,没有日期,例如格式GG将是AD,而不是公元2017年8月15日。

Currency pipe改变:

symbolDisplay的默认值现在是symbol而不是code。这意味着默认情况下,程序员将会看到 en-US是$4.99,而不是以前的USD4.99。

弃用:

currency pipe (symbolDisplay)的第二个参数不再是布尔值,它现在采用code, symbol或symbol-narrow。布尔值现在仍然有效,但不推荐使用,它将在控制台中打印一条警告消息。

特点:

您现在可以选择code, symbol或者symbol-narrow ,以便访问某些货币的更多选项(例如加拿大货币代码为CAD,符号为CA $和symbol-narrow $)。

Percent pipe改变:

如果不指定要舍入的数字,则将使用本地格式(通常将数字舍入到0位数,而不是先前不舍入)。 {{3.141592 | percent}}将输出314%,而不是以前的314.1592%。

  • NgFor已被删除,因为v4之后已被弃用,使用NgForOf代替,这不影响在模板中使用* ngFor。

  • NgTemplateOutlet#ngOutletContext已被删除,因为v4之后已被弃用。使用NgTemplateOutlet#ngTemplateOutletContext代替。

  • #findBindings已被删除,因为v4之后已被弃用。使用可测#findProviders代替。

  • DebugNode#source已被删除,v4之后已被弃用。

  • 对于路由器参数initialNavigation的值true,false,legacy_enabled和legacy_disabled已被删除,因为它们已被弃用,使用启用或禁用代替。

  • DifferFactory.create不再将ChangeDetectionRef作为第一个参数,因为它自v4以来不被使用和不推荐使用。

  • TrackByFn已被删除,因为它自v4以来已被弃用,使用TrackByFunction代替。

  • platform-webworker:PRIMITIVE已被删除,因为v4之后已被弃用,使用SerializerTypes.PRIMITIVE代替。

  • platform浏览器:NgProbeToken已从@ angular / platform-browser中删除,因为v4之后已被弃用。 从@ angular / core导入它。

  • core:ErrorHandler不再需要参数,因为它自v4以来不被使用和不推荐使用。

  • compiler:编译器的useDebug选项已被删除,因为它没有任何效果,并且自v4以来已被弃用。

这都在提醒程序员:Angular 5正在快速接近

如今年早些时候提到的,Angular 5在9月份发布。那么,Angular 5.0有什么不同呢? 一些新功能和性能改进,但主要是很多bug修复。

特征

  • compiler:将占位符的表示形式添加到xliff&xmb

  • forms:将选项arg添加到抽象控件

  • router:添加事件跟踪单个路由的激活

性能改进

  • 抽象类方法和接口

  • 使用native addEventListener来更快渲染。

程序员都知道,Angular 4的最大优点之一是体积更小,速度更快,它改变了AOT生成代码的方式,目标是在大多数情况下将生成的用户组件代码大小减少大约60%。

Angular 5将会比Angular 4更快更小,顺利更新之后编译Angular应用程序将变得更加简单。由于“Just-in-Time和Ahead-of-Time”之间的差异可能令人沮丧,后者将成为默认选项,从而减少摩擦。

所有Google应用程序都将使用最新版本的Angular,并且该团队对Angular的稳定性感到非常好。当然,使用最新的小版本有好处,但对于那些不使用的人来说,也可以考虑使用长期支持版本也就是Long-Term Support (LTS)。Angular 4就是这样一个版本,在接下来六个月,Angular团队将积极开展发布功能和bug修复的工作。10月份,Angular 4将进入长期状态,从那时起,只有关键的修复程序和安全补丁将被合并和发布。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表