使用 Angular 14 的 inject 函数优化对 Ngrx 的使用方式

简介: 使用 Angular 14 的 inject 函数优化对 Ngrx 的使用方式

我们先看 Angular 里一个常规的使用 Ngrx Store 的例子:


image.png


上面这段代码的缺陷是,Component 作为 UI 的展现层,直接依赖于作为第三方库的 Store API —— 一个合乎逻辑的措施是,将这个逻辑通过 facade 服务的思路,抽取到一个 service 中,以保护 Component 免受库弃用或破坏性更改(breaking changes)的影响。


在 Angular 14 之前,我们可以将上面的代码进行重构,把 Store 相关的操作,封装到一个 facade service 里:


image.png


虽然重构之后代码行数变多了,但是这种设计对 breaking changes 能够应对自如,因为我们现在只需要在一个地方管理代码,即 EntityFacade,而不是重构之前在 Component 里使用 Store 的任何地方。


现在让我们看看 inject() 方式。


image.png


有一种观点认为,使用闭包需要将返回的函数存储在 Component 的属性中,这增加了 Component 的复杂性,还不如使用构造函数注入和服务。


到底使用 inject 还是传统的构造函数注入方式,取决于团队制定的编程规范。



相关文章
|
7月前
|
存储 API 网络架构
Angular Ngrx Store 应用程序状态的一些典型例子
Angular Ngrx Store 应用程序状态的一些典型例子
37 0
|
7月前
|
Java API 调度
Angular Ngrx Store Effect 和 Action 的交互流程
Angular Ngrx Store Effect 和 Action 的交互流程
53 0
|
7月前
|
存储 JavaScript 前端开发
Angular Ngrx Store 里 State 和 Reducer 的绑定关系是如何实现的
Angular Ngrx Store 里 State 和 Reducer 的绑定关系是如何实现的
56 0
|
6月前
|
存储 JavaScript 前端开发
Angular 14 inject 函数使用过程中的一些注意事项
Angular 14 inject 函数使用过程中的一些注意事项
54 1
|
5月前
|
JavaScript UED SEO
Angular 应用启用服务器端渲染后 Ngrx store 和 re-hydration 的交互关系
Angular 应用启用服务器端渲染后 Ngrx store 和 re-hydration 的交互关系
30 1
|
6月前
|
存储 API 网络架构
Angular 14 新的 inject 函数介绍
Angular 14 提供了一些非常有趣的特性:类型化表单(typed forms)、独立组件(standalone components),以及本文将要介绍的内容,即在所谓的构造器阶段(constructor phase) 使用 inject 函数的能力。
50 0
|
7月前
|
JavaScript 前端开发 调度
Angular Ngrx 里 Store 和 State 的关系
Angular Ngrx 里 Store 和 State 的关系
60 0
|
7月前
|
SQL 数据库
Angular Ngrx store 里的 Selector 介绍
Angular Ngrx store 里的 Selector 介绍
46 0
|
7月前
|
SQL 数据库
使用 NgRX Store Module 给 Angular 应用开发带来的收益
使用 NgRX Store Module 给 Angular 应用开发带来的收益
30 0
|
7月前
|
Web App开发 存储 JavaScript
什么是 Angular Ngrx Store 里的 Meta-Reducer
什么是 Angular Ngrx Store 里的 Meta-Reducer
40 0
什么是 Angular Ngrx Store 里的 Meta-Reducer

热门文章

最新文章