Redux和react-redux的基础使用

redux 和 react 没有关系,redux 可以用在任何框架中,redux 是一个状态管理器。
connect 不属于 redux,它其实属于 react-redux。
react-redux是Redux的官方React绑定库。它能够使你的React组件从Redux store中读取数据,并且向store分发actions以更新数据
react项目中我们通常结合两者使用。
首先通过import引入两者的依赖包:

import { createStore } from 'redux';
import { Provider,connect} from "react-redux";

以上篇制作马云模拟器当做例子,代码如下:

//子组件传过来的值
let childrendata;
/*-----------具体通知描述及数据处理方法部分-------------*/
// Action通知及描述
const increaseAction = { type: 'reduce' }
// Reducer计算  基于原有state根据action得到新的state
function counter(state = { count: 279000000000}, action) {
  const count = state.count;
  switch (action.type) {
    case 'reduce'://如果接到action为increase的通知执行
      return { count: childrendata}
    default:
      return state//返回新的state
  }
}

/*-----------数据存储器部分-------------*/
// 根据reducer函数通过createStore()创建store(存储器)
const store = createStore(counter)

/*-----------映射方法及数据部分-------------*/
//  将state映射到Counter组件的props(数据)
function mapStateToProps(state) {
  return {
    value: state.count
  }
}
//  将action映射到Counter组件的props(方法)
function mapDispatchToProps(dispatch) {
  return {
    onIncreaseClick: function (data) {
      childrendata = data;
      dispatch(increaseAction)//定义点击方法发送action
    }
  }
}
// 传入上面两个函数参数,将Counter组件变为App组件
const App = connect(
  mapStateToProps,
  mapDispatchToProps
)(Counter)

const Home = () => {
  return(
    <Provider store={store}>
      <App/>
    </Provider>
  )
}
export default Home

react-redux的Provider,将redux创建的store传给子组件,供调用。
子组件中执行onIncreaseClick函数,dispatch(increaseAction),触发更新。redux中counter处理数据,返回当前最新的值。
react-redux的connect()函数将mapStateToProps和mapDispatchToProps,挂载到Counter的组件上,返回新的组件。
mapStateToProps方法将counter中定义的值映射为value传给子组件,以供调用。
mapDispatchToProps将方法传给子组件,以供调用。

项目预览地址:https://aotuotage.github.io/next-test/
代码地址:https://github.com/aotuotage/next-test

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 之前写了一些 Redux 的一些示例,这次主要是跟着 Redux 官方网站 中的示例继续探索 Redux C...
    bowen_wu阅读 4,427评论 0 2
  • 今天来看一下react组件之间是怎么进行通讯的。react推崇的是单向数据流,自上而下进行数据的传递,但是由下而上...
    亲亲qin阅读 11,193评论 2 12
  • 本文作者:胡子大哈 原文链接:https://scriptoj.com/topic/178/如何在非-react-...
    胡子大哈阅读 4,440评论 0 3
  • 你的名字不错 风起时就会想起你 那时候的你 也像风 渐行渐远 那一年的你 如何被惦记 暮来暮往 关灯蜷缩在角落 然...
    留子尧阅读 1,094评论 0 5
  • 目录繁华落尽,乱世成殇 上一章繁华落尽,乱世成殇(27) 见欧阳澈愣在那里,玄墨不由得觉得好笑,自己对这天下都没有...
    煦子阅读 1,540评论 0 5

友情链接更多精彩内容