摘要:具体了解此方法可以请戳这里最后把对象暴露给在主入口进行调用我们通过提供的顶层组件传入然后把要展示的写入顶层组件就行了,提供了整个全局的供所有的子组件进行调用具体代码实现请
项目目录
整个项目目录分为图中所示: Redux分为{Action,Reducer,Store} 入口文件为App.jsx项目效果
从图中可以看出整个组件可以分为3个组件,内部Counter组件,计算Count的Summary的组件,以及整个容器组件ControlPanelContent
React Redux 事实上是两个独立的产品, 应用可以使用 React 而不使用 Redux ,也可以使用 Redux 而不使用 React ,但是,如果两者结合使用,没有理由不使用 一个名叫 react-redux 的库这个库能够大大简化代码的书写; react-redux 的两个最主要功能: connect :连接数据处理组件和内部UI组件; Provider :提供包含 store的context; 通过Content实现传递Store的目的 首先定义好
Action/index.jsx
export const Increment="increment" export const Decrement="decrement" export const increment=(counterCaption)=>({ type:Increment, counterCaption } ) export const decrement=(counterCaption)=>({ type:Decrement, counterCaption })
Reducer/index.jsx
import {Increment,Decrement} from "../Action" export default(state,action)=>{ const {counterCaption}=action switch (action.type){ case Increment: return {...state,[counterCaption]:state[counterCaption]+1} case Decrement: return {...state,[counterCaption]:state[counterCaption]-1} default: return state } }
Store/store.jsx
import {createStore} from "redux" import reducer from "../Reducer" const initValue={ "First":0, "Second":10, "Third":20 } const store=createStore(reducer,initValue) export default store
在action中我们会发现定义了两个常量,一个控制增加,一个控制减少,然后暴露出增加减少的函数。这两个函 数可以在Couter组件中调用
Counter.jsx
import React, { Component } from "react" import {increment,decrement} from "../Redux/Action" import {connect} from "react-redux"; const buttonStyle = { margin: "20px" } function Counter({caption, Increment, Decrement, value}){ return ({caption} count :{value}) } function mapState(state,ownProps){ return{ value:state[ownProps.caption] } } function mapDispatch(dispatch,ownProps){ return { Increment:()=>{ dispatch(increment(ownProps.caption)) }, Decrement:()=>{ dispatch(decrement(ownProps.caption)) } } } export default connect(mapState,mapDispatch)(Counter)
1.在counter组件中我们会发现引入了增加和减少这两个函数,然后在mapDispatch函数中进行调用,暴露出增 加和减少合并的一个对象,然后通过解构在Counter函数组件中获得传递过来的经过mapDispath包装过后的增 加和减少组件。mapDispatch函数的作用就是把内层函数组件的增加和减少的动作派发给Store 然后我们转过来看Reducer/index.jsx reducer是专门处理数据逻辑的,通过传入(state,action),针对不同的action返回一个不同的store对象
Store/store.js
是专门对store进行的一个封装,通过createStore方法传入reducer和初始化state(initValue)来暴露 store对象,此对象非原始的store对象,该对象是对原始store进行注册,增加了若干方法。具体了解此方法可以**请戳这里**
[https://github.com/reactjs/redux/blob/master/src/createStore.js][1]
最后把store对象暴露给App.jsx在主入口进行调用
import React, {Component, PropTypes} from "react"; import ReactDOM, {render} from "react-dom"; import store from "./Redux/Store/Store.jsx" import {Provider} from "react-redux"; import ControlPanel from "./Component/ControlPanel.jsx" import "./style/common.less" render(, document.body.appendChild(document.createElement("div")) );
我们通过react-redux提供的顶层组件Provider传入store然后把要展示的ControlPanel写入顶层组件就行了, Provider提供了整个全局的store供所有的子组件进行调用
具体代码实现请git clone
https://github.com/jeromehan/...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/84913.html
摘要:描述这个插件可以让我们的代码更加的简洁和美观。安装使用提供了两个重要的接口使用了这个插件,的和就可以忘记来,它们就用不着了。现在有美女个。 可先查看我的redux简单入门 react-redux简介 react-redux是使用redux开发react时使用的一个插件,另外插一句,redux不是react的产品,vue和angular中也可以使用redux;下面简单讲解,如何使用rea...
摘要:介绍快速开始是的官方绑定库。通常你可以以下面这种方式调用方法基础教程为了进一步了解如何实际使用,我们将一步一步创建一个一个实例跳转到 介绍 快速开始 React-Redux是Redux的官方React绑定库。它能够使你的React组件从Redux store中读取数据,并且向store分发actions以更新数据 安装 在你的React app中使用React-Redux: npm i...
摘要:日常项目直接使用是完全没有问题的,可是随着项目的日益壮大,组件数量的逐渐增长,组件之间的嵌套使得数据的管理越来越繁重。最后数据保存进了中的,页面也会根据的改变自动更新。 以下文章均为个人近期所学心得,自学react、redux,逐渐找到自己的方向,现将自己的方向方式写出来,以供大家学习参考,肯定会有不足,欢迎批评指正。 日常项目直接使用react是完全没有问题的,可是随着项目的日益壮大...
摘要:手挽手带你学入门四档用人话教你,理解架构,以及运用在中。学完这一章,你就可以开始自己的项目了。结合搭建基础环境我们上一章讲过了的原理,内部是有一个的,只有才可以控制它变化。 手挽手带你学React入门四档,用人话教你react-redux,理解redux架构,以及运用在react中。学完这一章,你就可以开始自己的react项目了。 视频教程 上一篇我们自己实现了Redux,这一篇我们来...
阅读 746·2019-08-30 15:54
阅读 415·2019-08-30 12:51
阅读 2001·2019-08-29 16:28
阅读 2822·2019-08-29 16:10
阅读 2312·2019-08-29 14:21
阅读 384·2019-08-29 14:09
阅读 2104·2019-08-23 16:13
阅读 1222·2019-08-23 13:59