为了账号安全,请及时绑定邮箱和手机立即绑定

未来就是独立组件!

The future is standalone!

Angular v19 将把组件、指令和管道默认为 standalone: true

在v14中,我们引入了开发预览版的“独立”功能,首次实现了无需依赖NgModules构建应用程序。从那以后,“独立”功能已经稳定下来,并且成为了Angular团队推荐的编写Angular代码的方式。CLI默认生成带有standalone: true的组件,Angular文档首先教授所有新Angular开发者使用独立组件。无论是在Google内部最大的Angular应用程序中,还是互联网上的其他Angular应用程序中,采用率都很高并且仍在不断增长。

不仅 standalone 让 Angular 更容易学习和上手,还带来了几个激动人心的新功能。在 @angular/router 中, [loadComponent](https://angular.dev/api/router/Route#loadComponent) 简化了路由级别的懒加载,并依赖于 standalone 特性。指令组合 API 通过支持 standalone 指令在宿主组件或指令的声明中应用,实现了更灵活的组件行为组合模型。当然,惰性视图 透明地在模板级别懒加载 standalone 组件和指令,使优化 Angular 应用程序比以往任何时候都更简单。

在 v19 版本中,我们将迈出下一步,反转组件、指令和管道中 standalone 标志的默认值,这样你将不再需要输入“standalone: true”。通过这项更改,例如这样的组件:

下面是一个展示Angular中独立模式用法的例子

zh: 可以写成:

示例显示了v19中移除的独立标志位

如果我还在使用NgModule,那该怎么办?

这没问题,我们不会弃用standalone选项或NgModules本身,。你仍然可以通过在组件装饰器中设置standalone: false来继续使用NgModule组件。

我现有的独立模块或NgModules代码要怎么改?

作为 v19 版本 Angular 更新的一部分,我们将执行一次自动迁移,它将:

  • 移除现有独立组件的 standalone: true 属性,因为这将成为新的默认值。
  • 为现有 NgModule 组件添加 standalone: false,以确保它们继续正常运行。

你可以启用 strictStandalone 编译器选项,这样只有独立的组件才能在你的应用程序中使用。

关于FormsModule及其他如FormsModule这样的npm库应该怎么做?

这里一切都不会改变。即使启用了 strictStandalone 编译选项,独立组件仍然可以按需导入 NgModule 依赖。

如果你正在为 NPM 编写一个库,你也不需要做什么——你的组件在用户导入时也会正常工作,无论用户使用的是带新默认值的 v19 还是其他版本。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消