angular8与ngrx8的基本使用步骤

一、案例运行后的效果图

在这里插入图片描述

二、关于ngrx的认识

  • 1、官网地址
  • 2、ngrx是借鉴redux的思维,专门为angular中定制的一个状态管理的包,类似react中的reduxvue中的vuex,主要包括以下几个模块(本文先介绍@ngrx/store)
    • @ngrx/store
    • @ngrx/store-devtools
    • @ngrx/effects
    • @ngrx/router-store
    • @ngrx/entity
    • @ngrx/data
    • @ngrx/schematics
  • 3、需要使用ngrx的场景
    • angular项目开发中属于非必须的
    • 大项目中需要进行组件通讯,数据共享

三、构建项目

  • 1、使用@angular/cli初始化项目

    ng new angular-ngrx
    
  • 2、创建一个数据的module(手动修改名字为AppStoreModule,不然会和@ngrx/store中的重名)

    ng g m store
    
  • 3、在store文件夹下创建三个文件夹

    • actions
    • reducers
    • selectors(非必须的,仅仅是对于一个状态树是对象的时候,写一个方法选择状态树中的一个节点)
  • 4、手动安装@ngrx/store

    npm install @ngrx/store --save
    
  • 5、手动安装@ngrx/store-devtools

    npm install @ngrx/store-devtools --save
    
  • 6、在reducers文件夹下创建index.ts(使用ng add @ngrx/store会默认生成的)

    import {
      ActionReducerMap,
      MetaReducer
    } from '@ngrx/store';
    import { environment } from '../../../environments/environment';
    
    // 项目中全部的状态
    export interface State {}
    
    // 全部的reducer函数
    export const reducers: ActionReducerMap<State> = {};
    
    export const metaReducers: MetaReducer<State>[] = !environment.production ? [] : [];
    
  • 7、浏览器要安装redux插件

  • 8、在store.module.ts中配置浏览器调试的更多配置见

    @NgModule({
      declarations: [],
      imports: [
        StoreModule.forRoot(reducers, {
          metaReducers,
          runtimeChecks: {
            strictStateImmutability: true,
            strictActionImmutability: true,
            strictStateSerializability: true,
            strictActionSerializability: true,
          }
        }),
        StoreDevtoolsModule.instrument({
          maxAge: 20,
          logOnly: environment.production
        })
      ]
    })
    export class AppStoreModule { }
    

四、在项目中使用@ngrx/store

  • 1、代码的使用见github中的book组件
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水痕01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值