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 相关文章推荐
AJAX的跨域与JSONP(为文章自动添加短址的功能)
Jan 17 Javascript
有关于eclipse配置spket需要注意的一些地方
Apr 07 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
Aug 03 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
Sep 14 Javascript
js获取腾讯视频ID的方法
Oct 03 Javascript
vue登录注册及token验证实现代码
Dec 14 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
jquery 输入框查找关键字并提亮颜色的实例代码
Jan 23 jQuery
vue cli 3.0 使用全过程解析
Jun 14 Javascript
详解Angular如何正确的操作DOM
Jul 06 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
亲自动手实现vue日历控件
Jun 26 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-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript排序函数实现数字排序
2015/06/26 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
vue+mockjs模拟数据实现前后端分离开发的实例代码
2017/08/08 Javascript
实现一个完整的Node.js RESTful API的示例
2017/09/29 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
JS实现用特殊符号替换字符串的中间部分区域的实例代码
2018/07/24 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
python列表与元组详解实例
2013/11/01 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
python一键升级所有pip package的方法
2017/01/16 Python
Python实现excel转sqlite的方法
2017/07/17 Python
pycharm 取消默认的右击运行unittest的方法
2018/11/29 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
解决django框架model中外键不落实到数据库问题
2020/05/20 Python
tensorflow与numpy的版本兼容性问题的解决
2021/01/08 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
MySQL面试题目集锦
2016/04/14 面试题
社区健康教育实施方案
2014/03/18 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
小平小道观后感
2015/06/09 职场文书
春季运动会加油词
2015/07/18 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
Django与数据库交互的实现
2021/06/03 Python
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
详解Golang如何优雅的终止一个服务
2022/03/21 Golang