初步了解redux
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的更多相关文章
- 再探Redux Middleware
前言 在初步了解Redux中间件演变过程之后,继续研究Redux如何将中间件结合.上次将中间件与redux硬结合在一起确实有些难看,现在就一起看看Redux如何加持中间件. 中间件执行过程 希望借助图 ...
- react 会员登录
会员登录在我们的好多项目中都有用到,比如在后台管理系统,它的第一步就需要你进行登录,还有在我们常见的京东.淘宝.网易云音乐等一系列的软件上面都需要进行登录. 下面我们直接上代码 fetch(url,{ ...
- redux 初步理解
派发一个 action 给 reducer, reducer 生成了一个新的 state; redux 通过 Store 来保存数据, store.getState 获得数据, 而要更新 state, ...
- react+redux官方实例TODO从最简单的入门(1)-- 前言
刚进公司的时候,一点react不会,有一个需求要改,重构页面!!!完全懵逼,一点不知道怎么办!然后就去官方文档,花了一周时间,就纯react实现了页面重构,总体来说,react还是比较简单的,由于当初 ...
- Redux教程2:链接React
通过前面的教程,我们有了简单的环境,并且可以运行Redux的程序,也对 如何编写Redux示例 有了初步的印象: 掌握了 使用Redux控制状态转移 ,继而驱动 React 组件发生改变,这才是学习R ...
- react与redux学习资料的整理
**重点内容**React学习 1.新手入门可以访问react的官方网站,如果英语不是特别好的同学可以访问中文版的,具体链接http://reactjs.cn/react/index.html 首页有 ...
- redux深入理解之中间件(middleware)
理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initi ...
- Redux的中间件原理分析
redux的中间件对于使用过redux的各位都不会感到陌生,通过应用上我们需要的所有要应用在redux流程上的中间件,我们可以加强dispatch的功能.最近也有一些初学者同时和实习生在询问中间件有关 ...
- 在 React Native 中使用 Redux 架构
前言 Redux 架构是 Flux 架构的一个变形,相对于 Flux,Redux 的复杂性相对较低,而且最为巧妙的是 React 应用可以看成由一个根组件连接着许多大大小小的组件的应用,Redux 也 ...
随机推荐
- pycharm中配置启动Django项目
1.先打开mange.py,然后再运行,会提示一堆东西,表示没有配置参数.在pycharm中点击edit configurations 编辑配置参数. 2.点开之后弹出如下对话框,在scrip par ...
- Jade是变体的HTML
在这段HTML代码中,div 包含了一个 a 元素与一段没有标记包围的文本.若要用Jade表述这段HTML,div 元素和 a 元素都可以用前面所述的方法实现,但剩下的那个没有标记包围的文本就不能用前 ...
- 如何在 Linux 中查看可用的网络接口
在我们安装完一个 Linux 系统后最为常见的任务便是网络配置了.当然,你可以在安装系统时进行网络接口的配置.但是,对于某些人来说,他们更偏爱在安装完系统后再进行网络的配置或者更改现存的设置.众所周知 ...
- ES6之Promise的基本用法
之前多次看过阮一峰的ES6教程,对Promise也简单的理解过,但是,由于没在项目中运用过,所以记忆的并不深刻,昨天在进行项目的改良,有一个地方需要用到Promise 所以就这样写了: onload函 ...
- Android--Service之AIDL传递系统基本类型数据
前言 前面讲解了Service的一些基本内容.但是对于绑定服务传递数据,只局限于本地服务,无法使用服务进行跨进程间的交互.如果需要用到跨进程交互的话,需要用到一个新的技术-AIDL,这篇博客就针对AI ...
- ELK实践(二):收集Nginx日志
Nginx访问日志 这里补充下Nginx访问日志使用的说明.一般在nginx.conf主配置文件里需要定义一种格式: log_format main '$remote_addr - $remote_u ...
- 在linux上安装svn
1. 安装svn 输入命令:yum -y install subversion 检查是否安装成功: 输入命令:svn –version 2. 创建代码仓库 输入命令:mkdir -p /usr/loc ...
- 【原创】关于Git暂存区的理解
关于Git暂存区的理解 暂存区可以说是Git的三大重要的区域之一,另外两个分别是工作目录和Git仓库,所以说对暂存区的深入理解可以帮助我们理解很多Git命令背后隐藏的工作原理.今天,本文将以 ...
- 3.Magicodes.NET框架之路——预览(一)
3.Magicodes.NET框架之路——预览(一) 前言 一眨眼,已经过去两个多月了 ,哥已经火力全开了(业余时间和精力,甚至为此放弃了各种私活),所以大家不要抱怨慢哈.编程犹如逆水行舟,不进则退. ...
- Android studio 下 JNI 开发实例
在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为“交叉编译”? 先看什么是 JNI?JNI 的全称就是 Java Native In ...