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 相关文章推荐
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
在Linux上用forever实现Node.js项目自启动
Jul 09 Javascript
javascript制作2048游戏
Mar 30 Javascript
jQuery实现列表内容的动态载入特效
Aug 08 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
Sep 20 Javascript
js设置和获取自定义属性的方法
Oct 20 Javascript
javascript iframe跨域详解
Oct 26 Javascript
js实现消息滚动效果
Jan 18 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
JS出现404错误原理及解决方案
Jul 01 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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 中include()与require()的对比
2006/10/09 PHP
PHP数学运算与数据处理实例分析
2016/04/01 PHP
PHP getID3类的使用方法学习笔记【附getID3源码下载】
2019/10/18 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[03:06]3分钟带你回顾DOTA2完美盛典&完美大师赛
2017/12/06 DOTA
python使用marshal模块序列化实例
2014/09/25 Python
Python实现线程池代码分享
2015/06/21 Python
如何在Python函数执行前后增加额外的行为
2016/10/20 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python def 定义函数,调用函数方式
2020/06/02 Python
如何查看python关键字
2021/01/17 Python
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
几道数据库的概念性面试题
2014/05/30 面试题
人事主管岗位职责范本
2013/12/04 职场文书
安全教育感言
2014/03/04 职场文书
党务公开方案
2014/05/06 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
Python 内置函数速查表一览
2021/06/02 Python
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB