伟哥带你玩Redux

Redux有点类似信号编程,只需关注信号的发射和监听

四个要素

1.Store

  • 定义
    存储数据的对象,一个应用只有一个store

  • 如何创建

import { createStore } from 'redux'
const store = createStore(fn)

2.State

  • 定义
    一个时间点对应一个快照,state与view相关联,state变化导致view变化

  • 如何获取

const state = store.getState();

3.Action

  • 定义
    View通过action来使state变化,View -(Action)->State

  • 如何创建

const action = {
  type: 'ADD_INFO',//action的名称
  data//action附加的信息
}

4.Reducer

  • 定义
    state变化的规则

四个步骤

  • 定义reducer
  • 创建store
  • 订阅
  • 触发action

Redux在React中的应用

1.前戏:设计一个文件夹目录

· redux
  · actions
  · store
  · reducers

2.小试牛刀:state的展示与修改

3.正式实战:

3.1单个页面,共用一个redux
3.2多个页面,共用一个redux
Detail.jsx

import { connect } from 'react-redux'
import { bindActionCreators } from 'redux'
import * as userinfoActions from '../../redux/actions/userinfo'

// 任何时候,只要 Redux store 发生改变,mapStateToProps 函数就会被调用
function mapStateToProps(state) {
  return {
    haha: state.userinfo
  }
}

function mapDispatchToProps(dispatch) {
  return {
    userinfoActions: bindActionCreators(userinfoActions, dispatch)
  }
}

export default connect(
    mapStateToProps,
    mapDispatchToProps
)(Detail);

//this.props.haha.userid以及this.props.haha.city就可以拿到了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 学习必备要点: 首先弄明白,Redux在使用React开发应用时,起到什么作用——状态集中管理 弄清楚Redux是...
    贺贺v5阅读 8,953评论 10 58
  • 前言 本文 有配套视频,可以酌情观看。 文中内容因各人理解不同,可能会有所偏差,欢迎朋友们联系我讨论。 文中所有内...
    珍此良辰阅读 11,942评论 23 111
  • Redux对于React程序是可有可无的吗?当你认识到Redux在编程时给你那种可以掌控一切状态能力的时候,你会觉...
    smartphp阅读 1,005评论 0 5
  • 一、什么情况需要redux? 1、用户的使用方式复杂 2、不同身份的用户有不同的使用方式(比如普通用户和管...
    初晨的笔记阅读 2,063评论 0 11
  • http://gaearon.github.io/redux/index.html ,文档在 http://rac...
    jacobbubu阅读 80,058评论 35 198