redux作为react的状态状态管理工具,是十分重要的一部分,但是它在学习起来比较困难。它的写法一共分为三部分,而且他不像其他的东西一样可以写一步,在页面上查看一下。它必须三个部分全部完成之后,才能查看效果,所以redux在报错的时候也是非常的头痛的,不好查找具体是在哪一步写错了内容。

  下面简单的说一个我对它的一些了解和使用,给大家提供一些参考

  好的,使用redux最开始的一步就是安装

  npm i --save redux和npm i --save react-redux

  安装完成之后,我们去修改index.js文件的内容,先导入Provider

import {Provider} from 'react-redux'

  下一步

 class Index extends React.Component{
render() {
return (
<React.Fragment>
<Provider>
<App/>
</Provider>
</React.Fragment>
);
}
} ReactDOM.render(<Index />, document.getElementById('root'));

现在页面正常是可以显示出来的,但是在控制台内会有两个报错,这个我们先不用管

接下来回到我们的App.js页面写我们的内容,我们在页面上定义两个点击按钮,一个增值,一个减值

 <div>计算器:{this.props.state.number}</div>
<button onClick={this.incCounter.bind(this)}>+</button>
<button onClick={this.decCounter.bind(this)}>-</button>

接下来定义一下点击事件,并且把这个方法传递给index.js页面的方法

 constructor(){
super()
this.iAmount = 0
}
//将值传递给src/index.js里面的counter
//增值
incCounter(){
this.props.dispatch({type:"INC",amount:++this.iAmount})
}
//减值
decCounter(){
this.props.dispatch({type:"DEC",amount:--this.iAmount})
}

现在那我们返回到index.js  写我们的方法

 function counter(state={number:0},action) {
switch (action.type) {
case "INC":
return{number: action.amount}
case "DEC":
return{number: action.amount}
default:
return state
}
}

现在我们的函数也定义完了,我们需要将它存放一下,我们在导入createStore和combineReducers

 import {createStore,combineReducers} from 'redux'

然后

 let reducer=combineReducers(//合并多个函数
{
counter:counter,
}
)
const store=createStore(reducer);
class Index extends React.Component{
render() {
return (
<React.Fragment>
<Provider store={store}>
<App/>
</Provider>
</React.Fragment>
);
}
}

好了现在我们基本差不多就要完成了,就剩下最后的一点现在我们返回到App.js导入一个connect以及变换一下导出组件的方法

 import { connect } from 'react-redux';

 export default connect((state)=>{
return {
state: state
}
})(App);

到目前为止,我们的这个功能也完成了,

初步了解redux的更多相关文章

  1. 再探Redux Middleware

    前言 在初步了解Redux中间件演变过程之后,继续研究Redux如何将中间件结合.上次将中间件与redux硬结合在一起确实有些难看,现在就一起看看Redux如何加持中间件. 中间件执行过程 希望借助图 ...

  2. react 会员登录

    会员登录在我们的好多项目中都有用到,比如在后台管理系统,它的第一步就需要你进行登录,还有在我们常见的京东.淘宝.网易云音乐等一系列的软件上面都需要进行登录. 下面我们直接上代码 fetch(url,{ ...

  3. redux 初步理解

    派发一个 action 给 reducer, reducer 生成了一个新的 state; redux 通过 Store 来保存数据, store.getState 获得数据, 而要更新 state, ...

  4. react+redux官方实例TODO从最简单的入门(1)-- 前言

    刚进公司的时候,一点react不会,有一个需求要改,重构页面!!!完全懵逼,一点不知道怎么办!然后就去官方文档,花了一周时间,就纯react实现了页面重构,总体来说,react还是比较简单的,由于当初 ...

  5. Redux教程2:链接React

    通过前面的教程,我们有了简单的环境,并且可以运行Redux的程序,也对 如何编写Redux示例 有了初步的印象: 掌握了 使用Redux控制状态转移 ,继而驱动 React 组件发生改变,这才是学习R ...

  6. react与redux学习资料的整理

    **重点内容**React学习 1.新手入门可以访问react的官方网站,如果英语不是特别好的同学可以访问中文版的,具体链接http://reactjs.cn/react/index.html 首页有 ...

  7. redux深入理解之中间件(middleware)

    理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initi ...

  8. Redux的中间件原理分析

    redux的中间件对于使用过redux的各位都不会感到陌生,通过应用上我们需要的所有要应用在redux流程上的中间件,我们可以加强dispatch的功能.最近也有一些初学者同时和实习生在询问中间件有关 ...

  9. 在 React Native 中使用 Redux 架构

    前言 Redux 架构是 Flux 架构的一个变形,相对于 Flux,Redux 的复杂性相对较低,而且最为巧妙的是 React 应用可以看成由一个根组件连接着许多大大小小的组件的应用,Redux 也 ...

随机推荐

  1. 网页的异步请求(Ajax)

    JS原生Ajax操作(XMLHttpRequest) GET请求 var xmld=new XMLHttpRequest(); xmld.open("GET","wan. ...

  2. 工作随笔—Elasticsearch大量数据提交优化

    问题:当有大量数据提交到Elasticsearch时,怎么优化处理效率? 回答: 批量提交 当有大量数据提交的时候,建议采用批量提交. 比如在做 ELK 过程中 ,Logstash indexer 提 ...

  3. 第13组_16通信3班_045_OSPFv3作业

    IPv6 路由-OSPFv3 实验目的   1. 掌握 OSPFv3 的配置方法 2. 掌握在帧中继环境下 OSPFv3 的配置方法 3. 掌握 OSPFv3 NSSA 的配置方法 4. 学会查看 O ...

  4. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...

  5. vue-manage-system 后台管理系统开发总结

    前言 vue-manage-system,一个基于 Vue.js 和 element-ui 的后台管理系统模板,从2016年年底第一个commit,到现在差不多两年了,GitHub上也有了 5k st ...

  6. vue-15-vuex-store的用法

    vue-16-vuex 1, 介绍 对 vue 进行状态管理的, 集中存储所有组件的所有状态, 解决多个组件共享数据的问题. 即, 所有组件可以拿到同样的状态, 组件间共享数据 2, 在之前进行数据交 ...

  7. SpingBoot 属性加载

    属性加载顺序 配置属性加载的顺序 开发者工具 `Devtools` 全局配置参数: 单元测试上的 `@TestPropertySource` 注解指定的参数: 单元测试上的 `@SpringBootT ...

  8. MySQL GTID你知多少

    MySQL在5.6的版本推出了GTID复制,相比传统的复制,GTID复制对于运维更加友好,这个事务是谁产⽣,产⽣多少事务,⾮常直接的标识出来,当然GTID也有限制,对于什么是GTID可以参考我之前的文 ...

  9. 关于kubernetes使用私有仓库一点说明

    一.概述 关于kubernetes使用私有docker image  registry的一些说明: 1.对于自己构建的项目镜像或一些不想暴露到外网的image需要使用自建的私有仓库,一般有两种选择:d ...

  10. 垂直居中—3行CSS3代码

    方法一: .element { position: relative; top: 50%; transform: translateY(-50%); } 这用用的好处了,无论是块级元素还是行内元素,都 ...