首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法从具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的angular 4中的观察值获取计数

在具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的Angular 4中,要从观察值中获取计数,可以按照以下步骤进行操作:

  1. 首先,确保已经安装了@ngrx/effects和@ngrx/store这两个依赖包。可以通过运行以下命令来安装它们:
代码语言:txt
复制

npm install @ngrx/effects@4.1.1 @ngrx/store@4.1.1

代码语言:txt
复制
  1. 在你的应用程序中,创建一个名为counter的状态(state)。可以使用@ngrx/store来管理应用程序的状态。在这个状态中,定义一个名为count的属性来存储计数值。例如:
代码语言:typescript
复制

// counter.state.ts

export interface CounterState {

代码语言:txt
复制
 count: number;

}

export const initialState: CounterState = {

代码语言:txt
复制
 count: 0

};

代码语言:txt
复制
  1. 创建一个名为counter.actions.ts的文件,用于定义与计数相关的操作。例如,可以定义一个名为Increment的操作来增加计数值。例如:
代码语言:typescript
复制

// counter.actions.ts

import { createAction } from '@ngrx/store';

export const increment = createAction('Counter Increment');

代码语言:txt
复制
  1. 创建一个名为counter.reducer.ts的文件,用于处理与计数相关的操作。在这个reducer中,根据不同的操作类型更新计数值。例如:
代码语言:typescript
复制

// counter.reducer.ts

import { createReducer, on } from '@ngrx/store';

import { increment } from './counter.actions';

import { initialState } from './counter.state';

export const counterReducer = createReducer(

代码语言:txt
复制
 initialState,
代码语言:txt
复制
 on(increment, (state) => {
代码语言:txt
复制
   return {
代码语言:txt
复制
     ...state,
代码语言:txt
复制
     count: state.count + 1
代码语言:txt
复制
   };
代码语言:txt
复制
 })

);

代码语言:txt
复制
  1. 在你的应用程序的模块文件中,将counterReducer添加到StoreModule的reducers中。例如:
代码语言:typescript
复制

// app.module.ts

import { StoreModule } from '@ngrx/store';

import { counterReducer } from './counter.reducer';

@NgModule({

代码语言:txt
复制
 imports: [
代码语言:txt
复制
   StoreModule.forRoot({ counter: counterReducer })
代码语言:txt
复制
 ]

})

export class AppModule { }

代码语言:txt
复制
  1. 在你的组件中,使用@ngrx/store来选择(select)计数值。可以通过创建一个名为selectCount的选择器来选择计数值。例如:
代码语言:typescript
复制

// counter.selectors.ts

import { createSelector, createFeatureSelector } from '@ngrx/store';

import { CounterState } from './counter.state';

export const selectCounterState = createFeatureSelector<CounterState>('counter');

export const selectCount = createSelector(

代码语言:txt
复制
 selectCounterState,
代码语言:txt
复制
 (state: CounterState) => state.count

);

代码语言:txt
复制
  1. 在你的组件中,使用@ngrx/effects来处理与计数相关的副作用。可以创建一个名为CounterEffects的效果(effect),在这个效果中,订阅(subscribe)计数值的变化,并执行相应的操作。例如:
代码语言:typescript
复制

// counter.effects.ts

import { Injectable } from '@angular/core';

import { Actions, createEffect, ofType } from '@ngrx/effects';

import { tap } from 'rxjs/operators';

import { selectCount } from './counter.selectors';

@Injectable()

export class CounterEffects {

代码语言:txt
复制
 logCount$ = createEffect(() => {
代码语言:txt
复制
   return this.actions$.pipe(
代码语言:txt
复制
     ofType('[Counter] Increment'),
代码语言:txt
复制
     select(selectCount),
代码语言:txt
复制
     tap((count) => {
代码语言:txt
复制
       console.log('Count:', count);
代码语言:txt
复制
     })
代码语言:txt
复制
   );
代码语言:txt
复制
 });
代码语言:txt
复制
 constructor(private actions$: Actions) {}

}

代码语言:txt
复制
  1. 在你的应用程序的模块文件中,将CounterEffects添加到EffectsModule的effects中。例如:
代码语言:typescript
复制

// app.module.ts

import { EffectsModule } from '@ngrx/effects';

import { CounterEffects } from './counter.effects';

@NgModule({

代码语言:txt
复制
 imports: [
代码语言:txt
复制
   EffectsModule.forRoot([CounterEffects])
代码语言:txt
复制
 ]

})

export class AppModule { }

代码语言:txt
复制

通过以上步骤,你可以在具有@ngrx/effects@4.1.1和@ngrx/store@4.1.1的Angular 4应用程序中从观察值中获取计数值。这样做的好处是可以将状态和副作用(例如日志记录)与应用程序的其他部分分离开来,使代码更加模块化和可维护。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

angular4实战(4)ngrx

https://blog.csdn.net/j_bleach/article/details/78161765 ngrx ngrxangular状态管理库,与...同react-redux 相似,ngrx核心也是通过reducer来获取储存在store中(状态),通过action来改变store中值(状态)。...定义loadingactionreducer 在项目中创建ngrx文件夹,并在之下创建actionreducer文件。...高中英语水平翻译一下:async这个管道,会返回订阅Observe ,promise对象最新,当观察者发现值有改变时,就会触发组件检查策略,并且在组件销毁时也会自动去取消订阅避免内存泄漏。...在本例中,如果把async这个过滤器取消的话,会造成一直loading,因为组件无法在监听到控制loading改变,也就无法更新视图了。

1.1K30

Angular 2 + 折腾记 :(3)初步了解服务及使用

前言 不探究高深理论,只探究实际使用,有更好写法或者经验请指出; 有些暂时没涉及到知识我可能会顺着例子解释; ---- 什么是服务 简言之:就是资源获取,以及通讯逻辑处理地方; Angular2...这可能每个人开发理念不一样。。举一个例子,看代码。...this.authHttp.post(environment.baseUrl + 'VehicleFault/VehicleFaultList', data); } // 获取单个车辆故障列表...{ return this.authHttp.post(environment.baseUrl + 'VehicleFault/ClearFault', data); } // 这里每个接口返回一个可观察订阅对象...}) export class VehicleFaultModule { }复制代码 // 引入一些生命周期控制,组件传递响应接口等 import { Component, OnInit

1.6K20

Angular vs React 最全面深入对比

如今,AngularReact这两个JavaScript框架可谓红发紫,同时针对这两个框架选择变成了当下最容易被问及或者被架构设计者考虑问题,本文或许无法告诉你哪个框架更优秀,但尽量更多角度去比较两者...要掌握它,您将需要了解不同类型“可观察”,“主题”以及大约一百种方法操作符 。 当您使用连续数据流(如Web套接字)工作很多情况下,RxJS非常有用,但是对于其他任何东西来说似乎过于复杂。...@ngrx/store @ngrx/store是由Redux启发Angular状态管理库,基于由pure reducer进行突变状态。...不像Redux那样将状态保存在一个不可变存储中,它鼓励您仅存储最低限度必需状态,并从其中获取剩余数据。它提供了一组装饰器来定义可观察观察者,并将反应逻辑引入到你状态管理代码中。...框架本身丰富技术主题可以诸如模块,依赖注入、装饰器、组件、服务、管道、模板指令等基础开始,到更高级主题,如更改检测,区域,AoT编译RxJS。这些都在文档中。

3.8K70

同样做前端,为何差距越来越大?

由于历史原因,开发框架同时基于 React Angular,考虑到产品复杂性、人员短缺技术背景各异,我们尝试了各种方法打磨工具体系来提升开发效率,以下分享五点。 ?...一、基于 Redux 状态管理 2013年React发布至今已近6个年头,前端框架逐渐形成 React/Vue/Angular 三足鼎立之势。...庆幸是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样能力,甚至 NgRx 还可以无缝使用 redux-devtools 来调试状态变化。...曾经 React Angular 是两个很难调和框架,开发中浪费了我们大量的人力。...代码工具全面拥抱 TS 后,实现了后端 API 接口到 View 组件全链路静态分析,具有了完善代码提示和校验能力。 ?

1.2K20

给2019前端开发你5个进阶建议~

由于历史原因,开发框架同时基于 React Angular,考虑到产品复杂性、人员短缺技术背景各异,我们尝试了各种方法打磨工具体系来提升开发效率,以下是节选5项主要方法。...一、基于 Redux 状态管理 2013年React发布至今已近6个年头,前端框架逐渐形成 React/Vue/Angular 三足鼎立之势。...庆幸是除了 React 社区,Vue 社区有类似的 Vuex,Angular 社区有 NgRx 也提供了几乎同样能力,甚至 NgRx 还可以无缝使用 redux-devtools 来调试状态变化。...曾经 React Angular 是两个很难调和框架,开发中浪费了我们大量的人力。...代码工具全面拥抱 TS 后,实现了后端 API 接口到 View 组件全链路静态分析,具有了完善代码提示和校验能力。 ?

99710

【译】我是如何学习任意前端框架

现在,所有框架都提供API来管理你状态(例如Angular有一个Service,React现在有Context API)以及当你数据规模变大之后,你可以考虑使用像redux这样库。...创建项目 image.png 为了理解事物某些方面,你需要很好地了解它,这些知识(获取)不是仅仅来自阅读书籍或者观看视频课程。...项目的条理是最简单到最全面。...项目实例: 书签应用 To-Do App 你将学到: 验证用户表单输入,如果用户输入错误就提示错误信息 如何创建put、delete、postgetHTTP请求 将你应用程序任意后端框架集成...你将学到: 学习如何使用管理状态解决方案,如redux for react, ngrx for angular 2+ 或 vuex for vuejs以及如何将其与客户端应用程序集成 使你应用更灵活

3.6K10

前端架构101:MVC不足与Flux崛起

实现例子,无论是 view 文件还是 controller 文件,其它们职责并不明确,他们同时在负责好几件事情: 管理 view model,例如负责保存清空用户输入 协调用户流程,例如首先将用户输入清空...,然后提交新数据,再刷新数据列表 负责为不同 dom 元素绑定事件处理函数 不说大道理,当下 React 或者 Angular 组件相比,直接后果是这些模块是无法复用。...年后:Redux, Ngrx, Mobx, Akita, Ngxs 前者倾向于碎片化,各司其职辅助性功能;后者倾向于应用级别的数据管理 事件机制双向绑定更适用于小规模范围内,随着应用级别不断扩大...包括但不限于:Redux,Mobx,Ngrx,Akita,React 等等。...首先就像我在前几篇中提到那样,客户端到后端到前端并没有“标准 MVC” 一说。

1.4K20

react-redux 开发实践与学习分享

在各大框架中均可使用,当然各个框架也有自己再度封装状态管理库,如angularngrx,vuevuex,而本文主要介绍是reactreact-redux。 示例介绍 ?...关联rudex页面组件-connect 之前主页面的代码可以看到,错误信息显示是由组件props传进来,而主页面是如何获取相关props呢,答案是通过一个connect函数。...mapStateToProps(state, ownProps) 第一个参数是获取redux仓库中一个函数。...为了方便快速理解,我们可以简单粗暴认为他是js中getter,setter中getter,这是一个用来redux中获取函数,这个函数返回,可以在当前组件props中拿到。...,使得rudex可以保存记录一些你想要记录改变状态

89330

这些必备VSCode JavaScript插件你都用过吗?

前言 如今,Visual Studio Code无疑是最流行轻量级代码编辑器。它确实其他代码编辑器那借鉴了很多,最主要是SublimeAtom那里。...JS Refactor(提供许多重构JavaScript代码实用方法操作,例如抽取变量方法,把现有代码转为使用箭头函数模板字符串等价形式,导出函数等。)...浏览器插件 除非你是在用JavaScript写控制台程序,否则你多半会在浏览器中执行你JavaScript代码。这意味着,你会频繁地刷新浏览器以观察每次你更新代码效果。...Angular 6(提供Angular 6代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJSFlex Layout。...目前有220多万下载量172个Angular代码片段。) Angular v5 snippets(提供针对TypeScript、RxJS、HTMLDocker文件代码片段。

5.8K10

在同一基准下对前端框架进行比较

通常“todo”并没有传达出在构建真正程序时所需足够知识视角,。 标准化 一个符合某些规则项目。提供后端API、静态标记、样式规范。...根据规范,你需要多少行代码才能实现几乎相同程序(其中一些会有更多额外功能)。 ? 代码行数 - 越少越好 注意 Imba:由于 cloc 无法处理 *.imba 文件而跳过了它。...注意 Angular + ngrx:在 /libs 文件夹内完成代码行数计算,仅包括*.ts *.html 文件。如果你觉得这是错,请告诉我正确是多少,以及你是如何计算。...答:要研究 Elm、PureScript TypeScript 的话,请关注 Angular,AppRun,Dojo。 ---- 问:你写一个占用空间非常小程序?...上线时可用那个(2019年3月),我相信你可以 GitHub repo中找到相关信息。 #5 为什么你忽略了一个更受欢迎框架? 最后再说一次,请见上文。

94820

8分钟为你详解React、Angular、Vue三大框架

Hooks是让开发者函数组件中 "钩入"React状态生命周期特性函数。它们使代码具有更强可读性且更易理解。Hooks并不在类组件内工作,它终极目标是在React中消除类组件存在。...这种情况也就决定了React技术在创建网页应用时标准无法统一。 ?...Flux架构使用 为了支持React单向数据流概念(与AngularJS/Angular双向数据流形成对比),Flux架构是流行模型-视图-控制器(MVC)架构具有代表性替代方案。...动态加载 异步模板编译 由RxJS提供迭代回调。RxJS限制了状态可见性调试,但这些问题可以通过像ngReact或ngrx这样反应式附加组件来解决。...常用命令 终端上,全局安装Angular CLI: npm install -g @angular/cli 使用 ng new 命令创建一个新 Angular CLI 工作区: ng new my-project-name

22.1K20

作为JavaScript开发人员,这些必备VS Code插件你都用过吗?

如今,Visual Studio Code无疑是最流行轻量级代码编辑器。它确实其他代码编辑器那借鉴了很多,最主要是SublimeAtom那里。...浏览器插件 除非你是在用JavaScript写控制台程序,否则你多半会在浏览器中执行你JavaScript代码。这意味着,你会频繁地刷新浏览器以观察每次你更新代码效果。...Angular 6:提供Angular 6代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJSFlex Layout。...目前有220多万下载量172个Angular代码片段。 Angular v5 snippets:提供针对TypeScript、RxJS、HTMLDocker文件代码片段。...Ionic Extesion Pack:这个包里有针对Ionic、Angular、RxJS、CordovaHTML开发插件。

2.8K10

Angular v18 现已推出!

如需直观概述,请务必查看我们发布活动中视频:不断发展变化检测历史上看,一个名为 zone.js 库负责触发 Angular 更改检测。该库具有许多开发人员体验性能缺点。...如果没有区域,Angular 会将此检查限制为更少触发器,例如信号更新。此更改还包括一个具有合并功能新调度程序,以避免连续多次检查更改。...不幸是,async/await 是zone.js无法修补 API 之一,因此我们需要通过 Angular CLI 将其降级为 promises。...使用它,您可以跟踪、触摸状态、原始状态控制状态变化。...社区亮点随着 Angular 创新,我们也看到了社区中大量进步!ngrx、ngxs rxAngular 等流行状态管理库已经在采用 Angular 信号,并在组件中实现细粒度反应性。

12110

都9102年了,还需要用到 jQuery 吗?

具有较低学习曲线,并且比较容易让人在很短时间内学会并成为它专家。它满足了开发人员设计人员需求,因为它大大减少了构建时间。...相对易用性 - jQuery 一个缺点是很容易写出面条代码。由于对 jQuery 选择链使用不当,使用非描述性变量名并尝试编写复杂函数时,jQuery 可能会导致写出最终无法维护代码。...jQuery React JS Angular JS Vue JS 类型 库 UI库 全功能框架 在库功能齐全框架之间进行扩展。...实现双向数据 状态管理 可以使用专门库来实现 Context API,Redux 第三方库,如NGRX,NGXS等 Vuex 模板 JavaScript JavaScript(JSX) TypeScript... Angular 指令 HTML,CSS,JavaScript Vue 指令 学习曲线 低 低,但需要较高水平 JavaScript 知识 高 仅需要 JavaScript 基础知识即可入门

2.1K40

如何成为一名Web前端开发人员?入行学习完整指南

Web开发人员负责许多任务,收集需求到设计网站,处理网站后端部分,并使其成功地为用户服务。 每年,行业中都会涌现出新技术工具,以提高开发人员工作效率,并为用户提供更好网站。...后端全栈开发也是如此。 2、Web开发基本工具软件 计算机操作系统:如果没有计算机操作系统,则无法编写代码。要学习Web开发,你不需要任何高端计算机(如果你拥有的话,那么更好……)。...3、HTMLCSS开始 HTMLCSS是Web开发基本构建块。无论您Web应用程序有多先进,或者使用什么框架后端语言,都必须使用HTMLCSS构建前端应用程序。...VueX是为视图而构建状态管理器。 Angular:此框架通常在大型组织中使用。它具有相当陡峭学习曲线。用Angular学习 TypeScript也很好。...它允许您使用可选静态类型并支持ES2015功能。NGRX Services是可以学习此框架良好状态管理器。

2.1K11

AngularDart 4.0 高级-生命周期钩子 顶

Angular提供生命周期挂钩,提供这些关键生命时刻可视性以及发生时行为能力。 指令具有相同生命周期挂钩集,减去特定于组件内容视图挂钩。...ngDoCheck 检测Angular无法无法自行检测到更改并采取相应措施。 在每次更改检测运行期间,立即在ngOnChangesngOnInit之后调用。...看看Angular多久会调用这个钩子,并在更改日志后观察它。 AfterView 通过视图显示Angular意图。 演示ngAfterViewInitngAfterViewChecked挂钩。...构造函数不应仅仅将初始局部变量设置为简单。 ngOnInit是组件获取其初始数据好地方。 教程HTTP章节显示了如何。 还要记住,指令数据绑定输入属性在构建之后才会设置。...hero属性是对hero对象引用。 Angular并不在意英雄自己name属性发生了变化。 英雄对象引用没有改变,所以Angular角度来看,没有改变反馈!

6.2K10

从零开始搭建创业公司全新技术栈解决方案

无论你是一个技术小白还是资深开发者,本文将带你详细了解开发语言、组件选择、流程制定到系统化建设方方面面,逐步搭建一个适合创业公司全栈技术方案。...Java Java是一种面向对象编程语言,具有高度可移植性稳定性。 优点: 强大生态系统和丰富开源库。 广泛应用于企业级应用开发。 高性能高可靠性,适合处理大规模并发请求。...Angular:由Google开发前端框架,适用于大型应用开发,功能强大。 状态管理 Redux:React应用常用状态管理库,集中管理应用状态。...Vuex:Vue.js应用状态管理模式,集成在Vue生态中。 NgRxAngular应用状态管理库,基于Redux模式。...Oracle:商用关系数据库,提供全面的数据管理分析功能,适用于大型企业级应用。 MariaDB:MySQL分支,开源社区维护,具有更高性能功能扩展性。

14910

实战 | Change Detection And Batch Update

Angular1 Dirty Checking Angular1通过脏检测去更新UI,所谓检测其实指Angular1$rootScope开始遍历所有scope$$watchers数组,通过比较新老来决定是否更新...$apply()进行脏检测,核心代码如下 遍历所有scope$$watchers,通过get获取到最新同last比较,变化了则通过调用fn更新DOM。...Angular2 当数据变化时,Angular2根节点往下遍历进行更新,默认Angular2深度遍历数据,进行新老数据比较来决定是否更新UI,这点Angular1检测有点像,但是Angular2...Zone.js Angular2同Angular1一样都是直接操作数据,框架都无法直接感知数据变化,只能在特定时机去做批量更新。...ReactAngular1/2都是通过获取执行上下文来进行批量更新,但是ReactAngular1支持并不彻底,都有各自问题。

3.2K20
领券