Angular Ngrx Store应用程序状态典型示例详解

 更新时间:2023年07月17日 14:26:44   作者:JerryWang_汪子熙  
这篇文章主要为大家介绍了Angular Ngrx Store应用程序状态典型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Angular 应用程序需要管理一些应用程序状态

包括服务器端数据、用户信息、用户输入、UI 状态和许多其他变量。 开发人员经常利用可注入服务(Injectable Service)在一个集中的地方提供此功能(包括与一些后端 Web API 的通信),以便应用程序中的其余组件可以访问此共享数据以对其进行处理或更新。

这种做法仅仅适用于小型应用程序。 在某些情况下,随着应用程序规模的增长以及多个组件开始发出调用以更新或读取应用程序状态,这种实现变得不可扩展。 应用程序状态也可能变得不一致或不可靠。

这就是我们为何要引入 Ngrx Store.

应用程序状态是一组数据片段(data slice)的集合

表示应用程序在任何给定时间的状态。如前所述,应用程序状态可以是需要跨应用程序共享的任何数据切片:

  • 服务器端响应数据:从 Web API 请求和返回的数据
  • 用户信息:当用户登录应用程序时,存储用户名、电子邮件和其他与用户相关的信息。这使得用户稍后浏览和导航应用程序时可以快速访问。
  • 用户输入:在任何搜索页面上,用户输入搜索的主题或短语,应用程序将结果作为列表显示在他们的屏幕上。当用户单击结果时,应用程序导航到另一个页面以查看选择的详细信息。用户可以通过导航回到搜索页面并从列表中选择其他内容来查看另一个搜索结果。
  • UI 状态:流行的应用程序 UI 结构模式之一是具有垂直左侧菜单和右侧内容区域。提供一个按钮来最小化左侧菜单。左侧菜单的状态被存储,以便当用户导航到另一个屏幕或页面时,左侧菜单保持最小化。
  • 路由器/位置状态:当从一个屏幕导航到另一个屏幕时,应用程序会跟踪路由详细信息。状态需要跟踪用户选择了哪个记录,以便知道以后要渲染什么。

典型Application State slice

在 SAP 电商云 Spartacus UI 里,典型的 Application State slice 包括下列一些例子。

以 Site Context 场景为例,定义在 State.ts 文件里:

每一个状态切片都有一个所谓的 top state,称之为 Feature State,通常用一个常量字符串代表:

export interface StateWithSiteContext {
  [SITE_CONTEXT_FEATURE]: SiteContextState;
}

SiteContextState 才是真正包含业务数据的 state 数据结构:

export interface SiteContextState {
  languages: LanguagesState;
  currencies: CurrenciesState;
  baseSite: BaseSiteState;
}

以上就是Angular Ngrx Store应用程序状态典型示例详解的详细内容,更多关于Angular Ngrx Store程序状态的资料请关注脚本之家其它相关文章!

相关文章

  • AngularJS ng-bind-html 指令详解及实例代码

    AngularJS ng-bind-html 指令详解及实例代码

    本文主要是对AngularJS ng-bind-html 指令知识的详细讲解,并附代码实例,有需要的小伙伴可以参考下
    2016-07-07
  • AngularJS基础 ng-cut 指令介绍及简单示例

    AngularJS基础 ng-cut 指令介绍及简单示例

    本文主要介绍AngularJS ng-cut 指令,这里对ng-cut指令的基础资料进行了整理,和详细介绍,并附上代码示例和实现效果图,学习AngularJS 指令的朋友可以参考下
    2016-08-08
  • 使用AngularJS制作一个简单的RSS阅读器的教程

    使用AngularJS制作一个简单的RSS阅读器的教程

    这篇文章主要介绍了使用Angular.js制作一个简单的RSS阅读器的教程,AngularJS是一个非常有人气的JavaScript库,文中介绍的制作方法主要使用到了FreedReadR模版,需要的朋友可以参考下
    2015-06-06
  • AngularJS入门教程之静态模板详解

    AngularJS入门教程之静态模板详解

    本文主要介绍AngularJS 静态模板,这里整理了相关的基础资料,会帮助大家学习基础的AngularJS的基础知识,有需要的小伙伴可以参考下
    2016-08-08
  • 在Angular中实现一个级联效果的下拉框的示例代码

    在Angular中实现一个级联效果的下拉框的示例代码

    这篇文章主要介绍了在Angular中实现一个级联效果的下拉框的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • AngularJS基础 ng-mouseenter 指令示例代码

    AngularJS基础 ng-mouseenter 指令示例代码

    本文主要介绍AngularJS ng-mouseenter 指令,这里对ng-mouseenter 指令基础资料做了详细整理,并附代码实例,有需要的小伙伴可以参考下
    2016-08-08
  • AngularJS中处理多个promise的方式

    AngularJS中处理多个promise的方式

    promise是一种用异步的方式处理值的方法,promise是对象,代表了一个函数最终可能的返回值或者抛出的异常,在与远程对象打交道时我们可以把他看作是远程对象的一个代理,通过本文给大家介绍AngularJS中处理多个promise的方式及什么是promise,需要的朋友参考下
    2016-02-02
  • Angular 4.x 动态创建表单实例

    Angular 4.x 动态创建表单实例

    本篇文章主要介绍了Angular 4.x 动态创建表单实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • AngularJS入门教程之REST和定制服务详解

    AngularJS入门教程之REST和定制服务详解

    本文主要讲解 AngularJS REST和定制服务的知识,这里帮大家整理了相关知识,并附示例代码,详细讲解了RES和定制服务的知识,有兴趣的小伙伴可以参考下
    2016-08-08
  • Angular.js回顾ng-app和ng-model使用技巧

    Angular.js回顾ng-app和ng-model使用技巧

    这篇文章主要回顾Angular.js中ng-app和ng-model使用技巧,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论