一.第一步是介绍redux的工作流程逻辑解析图:

二.第2步介绍下redux的应用如下图所示:

  1. 首先通过Redux中的一个对象函数 createStore来创建一个store
  2. 创建上一步中的store的时候在 createStore函数中传递reducer的函数来改变state的状态
  3. 创建一个action,这个action是个对象主要包含type和payload。这个type主要是reducer函数更新state状态的一个处理类型,根据类型分类对state内的状态进行相应的更新处理
  4. 上面的步骤都操作完了之后,只需要通过store下面的dispatch的派发action,通过派发action后,redux会触发相应的reducer来更新相应的state状态
  5. 最后通过store.subscribe(()=>{})来订阅,意思差不多就是监听state的状态的更新,主要是通过store.getState()的方法来获取state更新后的状态

三. 第三步是让redux和react-redux在项目中简单应用的例子

第一步创建一个rootReducer.js文件如上图所示

第二步如下图,将这个rootReducer.js引入如果文件index.js,并且将它作为入参传入createStore中创建一个store;(createStore是来自于redux,在上面介绍redux中都有介绍)

然后创建一个store是通过如下方式:

import { createStore } from 'redux';

const store = createStore(rootReducer.js)

接下来我们需要从react-redux中引入provider;

import { Provider } from 'react-redux';

然后我们需要将Provider形式将store注入到组件中来实现组件和store的通信,如下代码

<Provider store={store}><App /></Provider>

最后综合注入的代码截图如下:

四.第四步是如何在组件中如何连接store中的state状态和修改state状态;

  1. 首先我们需要将react-redux 中的 connect 引入至组件中,connect的作用是将store结合组件返回个新的高阶组件

import { connect } from 'react-redux';

const mapStateToProps = (state) =>{return {posts: state.posts}
} export default connect(mapStateToProps)(组件的名称)

这样组件中就可以直接将state中的状态posts注入到props中,如此组件中就可以通过

this.props.posts直接用state中posts数据了,综合如下图所示:

 五.第五步就是如何子组件中更新state中的数据状态,如下图中的mapDispatchToProps

const  mapDispatchToProps = (dispatch) => {return {deletePost: dispatch({type: 'DELETE_POSTS',id: id})}
}export default connect(mapStateToProps,mapDispatchToProps)(组件名称)

如上图所示通过mapDispatchToProps(接受一个参数就是dispatch---用来派发action),组件中可以通过事件触发,在事件中调用上图代码中的deletePost函数来更新state中posts数据状态,下图就是如何调用deletePost这个方法来达到更新state中posts数据的状态

比如组件中有个button按钮,通过button按钮的点击事件来调用deletePost,如下图所示:

<button onclick={this.handleClick.bind(this)}></button>handleClick() {this.deletepost(this.props.product_id)
}

上述中说明了通过按钮的点击事件来触发 mapDispatchToProps的deletePost事件来派发action,从而更新state中posts的数据。

这个只是我总结的部分学习react-redux和redux在项目中的应用,如有问题欢迎大佬们指点一二,谢谢

react结合redux的开发步骤相关推荐

  1. 一篇文章读懂 React and redux 前端开发 -DvaJS, a lightweight and elm-style framework.

    DvaJS: React and redux based, lightweight and elm-style framework. https://dvajs.com/ 实例项目源码:https:/ ...

  2. React仿CNode社区(感受React + Typescript + Redux开发流程)

    CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究 GitHub 在线体验地址 说明 使用 React编写,感受React + Typescript + ...

  3. Rekit Studio简介:用于React和Redux开发的真实IDE

    by Nate Wang 内特·王 Rekit Studio简介:用于React和Redux开发的真实IDE (Introducing Rekit Studio: a real IDE for Rea ...

  4. react项目开发步骤_成为专业React开发人员的31个步骤

    react项目开发步骤 我为达到可雇用水平而进行的每个项目和课程. (Every single project and course I took to reach a hireable level. ...

  5. shopify二次开发教程_详细教程:如何将Shopify的Storefront API与React和Redux结合使用...

    shopify二次开发教程 by Chris Frewin 克里斯·弗里温(Chris Frewin) 详细教程:如何将Shopify的Storefront API与React和Redux结合使用 ( ...

  6. webpack+react+redux+es6开发模式---续

    一.前言 之前介绍了webpack+react+redux+es6开发模式 ,这个项目对于一个独立的功能节点来说是没有问题的.假如伴随着源源不断的需求,前段项目会涌现出更多的功能节点,需要独立部署运行 ...

  7. webpack+react+redux+es6开发模式

    一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...

  8. Cordova+React+OnsenUI+Redux新闻App开发实战教程-姜博-专题视频课程

    Cordova+React+OnsenUI+Redux新闻App开发实战教程-779人已学习 课程介绍         Cordova+React+OnsenUI+Redux新闻App开发实战视频培训 ...

  9. (头条新闻)Cordova+React+OnsenUI+Redux新闻App开发实战教程

    前言 伴随着HTML5技术的普及力度与日俱增, 混合应用开发已经备受关注, 百家争鸣的技术框架,如何做好技术选型,搭建最稳健的架构,快速的持续集成,是一个跨平台App开发的关键所在,所以本套视频教程凭 ...

最新文章

  1. 一键cosplay各路动漫人物!快手的这个BlendGAN火了 | NeurIPS 2021
  2. android 记一次富文本加载之路
  3. JMeter压力测试入门教程[图文]
  4. python dataframe转图片_Python:dataframe转html
  5. 求1+2+3+...+n
  6. 磁盘管理之逻辑卷管理(Logical Volume Manager)
  7. HDS:聚焦未来的投资“冻结”
  8. 信息学奥赛一本通 1085:球弹跳高度的计算 | OpenJudge NOI 1.5 20
  9. dedeampz-php环境整合套件,DedeAMPZ官方下载
  10. 记录自定义view的基本使用
  11. 6.1 统计学基本原理
  12. 做潮人,还是outman?
  13. 复习一波,hashMap的底层实现原理
  14. HTML元素的水平/垂直居中方式(简单代码和图)
  15. wxpython中表格顶角怎么设置_46-wxpython 4 使用 grid 展示表格
  16. Android上传蒲公英平台脚本
  17. GLES2.0中文API-glUniform
  18. java用正则表达式判断一个字符串是否是车牌号
  19. Selenium Grid 分享
  20. 一款免费、可私有部署的企业网盘

热门文章

  1. vim: 远程登陆服务器时可能出现的: 方向键,回退符不能正常使用
  2. Qt-窗口消息处理机制及拦截消息的五种方法
  3. mysql中数据库覆盖导入的几种方式
  4. Access-数据类型与.net OleDbType枚举类型对应关系
  5. #ifndef.#define, #endif 的用法
  6. C++ socket编程 实现服务端与客户端的通讯
  7. .net remoting 与webservice
  8. linux oracle 运维_Oracle查询当前的crs/has自启动状态实例教程
  9. 信息收集——Office钓鱼
  10. 图片加马(一句话木马)