未来就是独立组件!
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组件。
作为 v19 版本 Angular 更新的一部分,我们将执行一次自动迁移,它将:
- 移除现有独立组件的
standalone: true
属性,因为这将成为新的默认值。 - 为现有 NgModule 组件添加
standalone: false
,以确保它们继续正常运行。
你可以启用 strictStandalone
编译器选项,这样只有独立的组件才能在你的应用程序中使用。
这里一切都不会改变。即使启用了 strictStandalone
编译选项,独立组件仍然可以按需导入 NgModule 依赖。
如果你正在为 NPM 编写一个库,你也不需要做什么——你的组件在用户导入时也会正常工作,无论用户使用的是带新默认值的 v19 还是其他版本。
共同学习,写下你的评论
评论加载中...
作者其他优质文章