Angular 提案考虑将 NgModules 变为可选
Angular 的开发人员提出了一个 RFC(request for comment) 提案,考虑将 NgModules 设为可选。此举旨在将 Angular 转向更简单的重用模型,以改善开发人员体验。
该 RFC 于今年 10 月 8 日发布,预计最迟于 11 月 8 日结束。“此 RFC 的目标是与社区一起验证设计,征求对开放问题的反馈,并通过此提案中包含的非生产就绪原型进行实验。”
根据介绍,NgModules 是 Angular 的核心概念之一;刚接触 Angular 的开发者在创建哪怕是最简单的"Hello, World"应用程序之前,都需要了解这个概念。更重要的是,NgModules 充当着一个“推理和重用单元”的角色:
- libraries publish NgModules
- lazy-loading 是以 NgModule 为中心的,等等
鉴于 NgModule 在 Angular 中的核心作用,很难孤立地对组件、指令和管道进行推理。RFC 指出,在当下的 Angular 中,开发人员使用 NgModule 来管理依赖项。当一个组件需要使用另一个组件、指令、管道或 provider(无论是来自同一应用程序内,还是来自 NPM 上的第三方库)时,都不会直接引用依赖项。而当一个 NgModule 被导入,其中则包含导出的组件、指令和管道以及配置的 providers。因此即使是最简单的“Hello, World”,开发人员都必须创建一个 NgModule 来引导。
RFC 认为,让 Angular 在概念上以 NgModule 为中心会对开发人员体验产生负面影响;并进行了举例论证:
- 编写组件比编写类或模板更复杂。
- 围绕加载和渲染的 API 过于复杂且容易被误用。
- 阅读组件代码不足以理解组件行为。
- Angular 工具必须处理组件对其 NgModule 上下文的“隐式”依赖关系。
而该提案的好处就在于推动 Angular 向组件、指令和管道发挥更核心作用的方向发展,它们是独立的并且可以安全地直接导入/使用。
- 简化了 Angular 的 mental model
- 使新的 API 可以用于使用组件和指令(例如细粒度的延迟加载)
- 提高了 Angular 工具高效处理代码的能力。
所有这些好处结合起来将使得 Angular 更易于使用、更易于推理、不那么冗长且编译速度更快。
值得注意的是,该提案并不是要从 Angular 中删除 NgModule 的概念,而是让它在典型开发任务中成为可选项。不过 Angular 开发团队也表示,在将来的某个时刻,他们或许也会考虑完全删除 NgModules。
更多详细信息可查看提案。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
带 root 权限的 Android 恶意软件正在卷土重来
10月28日, Lookout Threat Lab 安全研究人员发现了一系列 Android 恶意软件,它们带有 root 权限,能完全控制受感染的手机等移动设备。 研究人员将恶意软件命名为 “AbstractEmu” ,因为它使用了代码抽象和反仿真检查,以避免在被分析时运行。这些恶意软件分布在 Google Play 和其他第三方商店,如亚马逊应用商店和三星 Galaxy 商店等,目前共发现 19 个“AbstractEmu” 相关的应用程序,其中 7 个包含 root 功能,其中一个在谷歌商店的下载量超过 10,000。 AbstractEmu 的背后可能是一个资源丰富且有经济动机的团队,他们的代码库和规避技术非常复杂,而且利用的漏洞类型非常现代: CVE-2020-0041:一个全新的漏洞,以前从未被用于恶意程序。 CVE-2020-0069:在联发科芯片中发现的漏洞,或影响数百万台设备。 除了直接利用这两个漏洞,恶意攻击者还主动修改了 CVE-2019-2215 和 CVE-2020-0041 公开漏洞的代码,以支持更多设备,这足以表明他们的技术能力。 在恶意软件被发现的短时...
- 下一篇
macOS Monterey “内存泄露”,控制中心要背锅?
最近升级到macOS Monterey 的部分用户反馈称遇到了“内存泄露”的问题。具体情况是,特定的 macOS 进程或应用程序会在后台长时间保持运行,并消耗异常多的内存。 目前无法确定受影响的具体 Mac 型号是哪些,但从社区和社交媒体上的用户反馈来看,影响范围相对较广,包括最新发布的 14/16 英寸 MacBook Pro 也出现此问题。这些用户表示,他们的 Mac 设备警告系统“已耗尽应用内存”,或是特定的应用程序在 Activity Monitor 中被发现耗费了非常高的内存。 有报道指出 macOS 控制中心是此次“内存泄露”问题的罪魁祸首。YouTube 博主 Gregory McFadden 使用的设备是 64GB 16 英寸 MacBook Pro,搭载M1 Max 处理器。他分享了 macOS 控制中心使用高达 20GB 内存的屏幕截图: 有用户表示使用 Firefox 也出现了类似的情况: 除了这些特定应用消耗大量内存的情况,更多用户的反馈表明,常见问题是弹出"Your system has run out of application memory"的警告——虽...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长