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 相关文章推荐
addRule在firefox下的兼容写法
Nov 30 Javascript
setInterval 和 setTimeout会产生内存溢出
Feb 15 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
C++中的string类的用法小结
Aug 07 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
纯js实现瀑布流布局及ajax动态新增数据
Apr 07 Javascript
多种jQuery绑定事件的实现方式
Jun 13 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
Sep 21 Javascript
JS常见简单正则表达式验证功能小结【手机,地址,企业税号,金额,身份证等】
Jan 22 Javascript
JavaScript阻止表单提交方法(附代码)
Aug 15 Javascript
AngularJS实现动态切换样式的方法分析
Jun 26 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
May 13 Javascript
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 curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
2011/04/07 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
2017/09/05 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
简单解析Django框架中的表单验证
2015/07/17 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
解决IDEA 的 plugins 搜不到任何的插件问题
2020/05/04 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
信息管理与信息系统专业求职信
2014/06/21 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
受资助学生感谢信
2015/01/21 职场文书
团日活动总结格式
2015/05/11 职场文书
党员转正党支部意见
2015/06/02 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技