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中String和StringBuffer的速度之争
Apr 01 Javascript
用JS判断IE版本的代码 超管用!
Aug 09 Javascript
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
jQuery瀑布流插件Wookmark使用实例
Apr 02 Javascript
javascript实现日期时间动态显示示例代码
Sep 08 Javascript
JQuery Mobile 弹出式登录框的实现方法
May 28 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
Nov 01 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
Ajax请求时无法重定向的问题解决代码详解
Jun 21 Javascript
js贪心算法 钱币找零问题代码实例
Sep 11 Javascript
vue 使用async写数字动态加载效果案例
Jul 18 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 ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
2016/10/20 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
学习python的几条建议分享
2013/02/10 Python
使用Python来开发Markdown脚本扩展的实例分享
2016/03/04 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python之列表实现栈的工作功能
2019/01/28 Python
Django框架模板的使用方法示例
2019/05/25 Python
Python Pandas中根据列的值选取多行数据
2019/07/08 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
推荐8款常用的Python GUI图形界面开发框架
2020/02/23 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
小学教师管理制度
2014/01/18 职场文书
高中生自我评语大全
2014/01/19 职场文书
经济类毕业生求职信
2014/06/26 职场文书
标准版离职证明书
2014/09/12 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
主持稿开场白
2015/06/01 职场文书
父母教会我观后感
2015/06/17 职场文书