angular8和ngrx8结合使用的步骤介绍


Posted in Javascript onDecember 01, 2019

一、案例运行后的效果图

angular8和ngrx8结合使用的步骤介绍

二、关于ngrx的认识

1、官网地址

2、ngrx是借鉴redux的思维,专门为angular中定制的一个状态管理的包,类似react中的redux、vue中的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组件

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript 更严格的相等 [译]
Sep 20 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
JavaScript中使用document.write向页面输出内容实例
Oct 16 Javascript
jquery中map函数遍历数组用法实例
May 18 Javascript
javascript url几种编码方式详解
Jun 06 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
Dec 15 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
angular实现input输入监听的示例
Aug 31 Javascript
js滚轮事件 js自定义滚动条的实现
Jan 18 Javascript
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
angular异步验证防抖踩坑实录
Dec 01 #Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 #Javascript
Node.js中console.log()输出彩色字体的方法示例
Dec 01 #Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 #Javascript
vue多个元素的样式选择器问题
Nov 29 #Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 #Javascript
vue 组件开发原理与实现方法详解
Nov 29 #Javascript
You might like
PHP学习笔记之三 数据库基本操作
2011/01/17 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
用Node编写RESTful API接口的示例代码
2018/07/04 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
jQuery-App输入框实现实时搜索
2020/11/19 jQuery
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
python实现逆波兰计算表达式实例详解
2015/05/06 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
Python之列表实现栈的工作功能
2019/01/28 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
ASP.NET Core中的配置详解
2021/02/05 Python
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
总经理秘书工作职责
2013/12/26 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
企业公益活动策划方案
2014/08/24 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
mysql事务隔离级别详情
2021/10/24 MySQL
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
bat批处理之字符串操作的实现
2022/03/16 Python
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android