硬核干货——《中小企业 AI 实战指南》免费下载! 了解详情
写点什么

Angular 16 正式发布,抢先体验指南

  • 2023-05-08
    北京
  • 本文字数:2549 字

    阅读完需:约 8 分钟

Angular 16 正式发布,抢先体验指南

上周,Angular 正式发布了 v16 版本。这个版本带来了许多功能和变化,比我们之前看到的任何一个主要版本都要多(当然,不包括从 Angular 到 Angular 2 的转变)。Angular 正在经历一种复兴,而 v16 只是个开始。


Angular v16 的新特性包括:全新 Reactivity 模 型的开发者预览,完全向后兼容,Angular Signals 库,RXS 互操作性;服务器端渲染和 hydration 增强;改进独立组件、指令和管道的工具等。



本文将带您了解如何将 Angular 应用程序更新至 v16 版本。


关于本文内容的概括汇总,以及将 Angular 应用程序更新至 v16 的分步过程,请参阅 Angular 更新指南(https://update.angular.io/)。


本文列出的 Angular 更新指南及相关信息,摘录自以下变更日志。


angular/angular changelog:https://github.com/angular/angular/blob/main/CHANGELOG.md


angular/angular-cli changelog:https://github.com/angular/angular-cli/blob/main/CHANGELOG.md


angular/components changelog:https://github.com/angular/components/blob/main/CHANGELOG.md


如有需求,可参考此前发布的“更新至 v15”:https://angular.io/guide/update-to-version-15


Angular v16 中的功能亮点


全面的新功能列表,请参阅关于 v16 Angular 博文更新。


https://blog.angular.io/


Angular Signals 开发者预览


此版本包含 Angular 新响应式基元的首个开发者预览,分别为:signal, computed 和 effect。关于详细信息,请参阅 Signals 指南。


https://angular.io/guide/signals


更多背景信息,请参阅 Angular Signals RFC。


https://github.com/angular/angular/discussions/49685


增强 hydration 开发者预览


此前,当 Angular 在服务器端渲染或编译时预渲染的页面上启动时,该框架会丢弃一切现有 DOM 节点并从头开始重新渲染。借助 v16 的增强 hydration 功能,现在您可以指定 Angular 重用这些现有 DOM 节点。关于更多细节信息,请参阅完整的 hydration 指南。


https://angular.io/guide/hydration


使用 esbuild 开发者预览版加快构建速度


v16 带来了基于 esbuild 的全新 Angular CLI 构建器开发者预览版。这种新架构能够在多种场景下显著缩短构建时间。该预览版还与 Vite 相集成以支持 CLI 的开发服务器。


更新 angular.json 即可体验这一全新构建设置:


content_copy"architect": {  "build": {    "builder": "@angular-devkit/build-angular:browser-esbuild",
复制代码


独立组件迁移与搭建


为了支持开发人员将自己的应用程序转换为独立 API,Angular v16 引入了迁移图表和独立的迁移指南。这些工具大大减少了将代码迁移至独立组件、指令和管道所需要的工作量。关于详细信息,请参阅独立迁移指南。


https://angular.io/guide/standalone-migration


通过以下命令生成具有独立组件的新 Angular 应用程序:


ng new --standalone
复制代码


按需要输入


按照需要标记组件和指令输入:


export class ColorPicker {  @Input({ required: true }) defaultColor: string;}
复制代码


如果模板中包含一个组件,但没有指定其所有必需输入,Angular 会在构建过程中报告错误。


Angular v16 中的重大变更


关于重大变更的完整列表,请参阅 GitHub 上的完整变更日志。


Angular v16 需要配合 node.js v16 或 v18 使用


Angular 需要配合 node.js v16 或 v18 版本使用。PR #47730


关于兼容性的完整说明信息,请参阅版本兼容性页面。


https://angular.io/guide/versions


Angular v16 需要配合 TypeScript 4.9 或更高版本使用


Angular v16 不再支持 4.9 之前的较早 TypeScript 版本。PR #49155


关于兼容性的完整说明信息,请参阅版本兼容性页面。


Angular 兼容性编译器(ngcc)已被移除


Angular 兼容性编译器(ngcc)是一种构建工具,用于促进 Angular 之前的编译器及渲染架构(View Engine)与其新架构(Ivy)之间的兼容性。


View Engine 已在 Angular v13 中被移除,v16 则最终移除了 ngcc。因此,现在已无法在 Angular v16+ 版本中使用由 View Engine 构建的 Angular 库。


Angular 包格式变更


Angular 包格式(APF)现已更新,具体包含以下变更:


  • Flattened ESM 2015 (FESM2015) 输出已被移除。

  • EcmaScript 2020 输出已更新至 EcmaScript 2022(包括扁平化输出)。


关于背景信息,请参阅 Angular 包格式页面。


https://angular.io/guide/angular-package-format


ReflectiveInjector 已被移除


ReflectiveInjector 及相关符号已被移除。请更新代码以避免引用 ReflectiveInjector 符号。作为替代方案,可以使用 Injector.create 创建注入器。


Router.createUrlTree 行为更新


由于 Router.createUrlTree 现可在更多场景中正确起效,因此需要对模拟 ActivatedRoute 实例的测试做相应调整。具体来讲,这意味着使用无效 / 不完整的 ActivatedRoute 模拟进行的测试可能引发与此前不同的行为。另外,测试现可导航至真实 URL,不同于之前只能导航至根目录的情况。请确保在测试中提供相应的预期路由。虽然几乎不会对生产造成影响,但我们发现此前如果使用未出现在当前路由程序状态中的 ActivatedRoute,相关导航可能会被忽略。在创建正确的 URL 之后,应用程序中的导航行为可能会有所不同。在大多数情况下,仅使用空命令数组更新查询参数的导航时会引发这个问题,例如 router.navigate([], {relativeTo: route, queryParams: newQueryParams})。要加以解决,应移除其中的 relativeTo 属性。


Angular v16 即将弃用的功能


以下 API 在 v16 中仍然可用,但可能会在未来版本中被移除,具体请参阅 Angular 弃用实践。


https://angular.io/guide/releases#deprecation-practices


为了保持 Angular 应用程序的可靠性,请尽可能始终快速更新应用程序。



小结


如果你是 Angular 开发人员,或正在考虑将 Angular 用于下一个项目,了解这些新功能是必不可少的。其中一些功能是社区长期以来的需求。一些功能(如 Signal 和 SSR)让 Angular 与其他现代框架相媲美。随着 v17 中更多功能的推出,Angular 将与目前的版本有很大不同。考虑到 Angular 带来的变化,如果不及时更新,就无法利用这些新功能,你的代码库很快就会过时。


相关阅读:

好用的 Angular 组件库有哪些推荐的?TinyNG 好用吗?

2023 重学 Angular

前端架构三大巨头之一 Angular|深度讲解

AngularJS 进阶 (二十五)requirejs + angular + angular-route 浅谈 HTML5 单页面架构

2023-05-08 14:525709

评论

发布
暂无评论
发现更多内容

实时语音交互,打造更加智能便捷的应用

HarmonyOS SDK

HarmonyOS

PKG系统安装包及IPSW固件:MacOS 11-14 正式版

你的猪会飞吗

MacOS 14 Sonoma mac系统下载 mca软件下载

YashanDB Docker镜像制作

YashanDB

数据库 yashandb 崖山数据库

如何利用 StarRocks 加速 Iceberg 数据湖的查询效率

镜舟科技

数据湖 查询优化 iceberg StarRocks

家居零售企业的数智人力战略升级,用友BIP超级版精选案例

用友BIP

高额奖金、校招终面直通卡!北京农商银行2024金融科技挑战赛正式启动!

极客天地

低至1元/小时:国庆七天,30元通关《黑神话:悟空》!

轶天下事

携手豆包大模型,创维酷开以AI加速OTT场景智能化

新消费日报

保利物业:这样构建数智化,从容超越“内卷之困”

用友BIP

开课啦!北大-用友CIO/CDO数智化进阶课程正式启航

用友BIP

第三方供应商不提供API接口?教你四步破解集成难题

谷云科技RestCloud

数据处理 API API接口 ipaas

观赛邀请|春季超音速四强诞生,邀您见证决赛精彩时刻

声网

Web3 游戏周报(9.22 - 9.28)

Footprint Analytics

链游

干货 | 日采100W新闻数据,如何实现新闻自动分类

八爪鱼采集器︱RPA机器人

爬虫 数据 采集

1大成果、2个联盟、3大先锋、N个发布!超聚变全方位助力算力强国建设

业界

人工智能与伦理:如何确保AI应用中的隐私保护

天津汇柏科技有限公司

AI 伦理 隐私保护 AI 人工智能

SD-WAN可以替代MPLS吗?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SD-WAN国际专线

阿里巴巴API与电商创新:商品详情获取的新方法

技术冰糖葫芦

API 接口 API 测试 API 优先 pinduoduo API

盛事启幕 | 第三届OpenHarmony技术大会重磅官宣,邀您共绘智联未来

OpenHarmony开发者

OpenHarmony

2024云栖大会资料精选,《云原生+AI核心技术&最佳实践》PPT全量放送!

阿里巴巴云原生

阿里云 云原生

数智化转型进行时:业界共话大模型应用创新实践

极客天地

使用Yasboot安装YashanDB的疑惑和建议

YashanDB

yashandb 崖山数据库 yasboot

国有企业推行末等调整和不胜任退出制度路径指引

用友BIP

纳尼?自建K8s集群日志收集还能通过JMQ保存到JES

京东科技开发者

原生鸿蒙版江苏智慧人社上架,引领全国政务应用加速鸿蒙化

最新动态

智源研究院推出全球首个中文大模型辩论平台FlagEval Debate

智源研究院

淘宝商品详情数据接口:挖掘电商数据的关键通道

tbapi

淘宝商品详情数据接口 淘宝API接口 淘宝商品详情数据采集 淘宝商品详情数据分析

钉钉x昇腾:用AI一体机撬动企业数字资产智能化

Alter

Angular 16 正式发布,抢先体验指南_大前端_丁晓昀_InfoQ精选文章