关于react的一些思考

所有的数据全部先要发送给容器,然后容器负责接受数据单后再分发数据给他下面的组件,通过props来传递,一个页面就可以相当于一个容器,容器之中就会有很多子组件,一般组件只负责接受容器的数据的渲染,容器来处理组件的状态

开始redux

redux主要是三个部分组成

  • Action 在这里定义一些操作和操作需要的数据交流
  • Reducer 这里需要定义数据,也就是state然后要根据不同action做出不同的操作
  • Store 这个主要就是起到链接作用的

然后主要的数据流向是

在你的界面上发生事件然后传递到容器上,

容器负责链接上Action

然后Action把请求通过store找到reducers

在reducers上对数据进行处理

然后数据改变后reducers通过store找到绑定容器

在容器上对数据进行绑定

然后就可以在界面上显示出来了

Store

就一句话来链接容器和reducers

同时加上Provider组件

let store = createStore(testAPP);

ReactDOM.render((
<Provider store={store}>
<App/>
</Provider>
), document.getElementById('root'));
registerServiceWorker();

Action

类似于这种

每个action有一个type,然后后面是对应的交互的数据

export const addData = addDelta => {
return {
type: 'ADD_DATA',
addDelta//添加量
}
};

Reducer

在里面要定义state

然后写一个switch循环来判断不同的Action给出不同的操作

const initialState = {
data : 0
} const test = (state = initialState, action)=>{
switch (action.type) {
case 'ADD_DATA':
console.log(state);
return {
data : state.data + action.addDelta
}
case 'SUBTRACT_DATA':
return {
data : state.data + action.addDelta
}
default:
return state;
}
}; export default test;

在容器中展示和触发

你在容器中使用redux的话需要绑定一下

export default connect(mapStateToProps,mapDispatchToProps)(Test)

mapStateToProps函数是绑定state里面的数据

mapDispatchToProps就是绑定一些方法方便触发

在组件中就直接通过props获取到

const mapStateToProps = state => ({
data: state
})
const mapDispatchToProps = dispatch => ({
test: id => dispatch(addData(id))
})
class Test2 extends Component {
render() {
const {data} = this.props;
return (
<div className="App">
<p className="App-intro">
<li><Link to='/test'>to test</Link></li>
this is test2------<span>{JSON.stringify(data)}</span>
<li><Link to='/'>to app</Link></li>
</p>
</div>
) }
}

二刷Redux笔记的更多相关文章

  1. 《Data Structures and Algorithm Analysis in C》学习与刷题笔记

    <Data Structures and Algorithm Analysis in C>学习与刷题笔记 为什么要学习DSAAC? 某个月黑风高的夜晚,下班的我走在黯淡无光.冷清无人的冲之 ...

  2. Python 刷题笔记

    Python 刷题笔记 本文记录了我在使用python刷题的时候遇到的知识点. 目录 Python 刷题笔记 选择.填空题 基本输入输出 sys.stdin 与input 运行脚本时传入参数 Pyth ...

  3. PTA刷题笔记

    PTA刷题记录 仓库地址: https://github.com/Haorical/Code/tree/master/PTA/GPLT 两周之内刷完GPLT L2和L3的题,持续更新,包括AK代码,坑 ...

  4. 毕业设计 之 二 PHP学习笔记(一)

    毕业设计 之 二 PHP学习笔记(一) 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 一.环境搭建 1.XAMPP下载安装 XAMPP是PHP.MySQL ...

  5. 【基于spark IM 的二次开发笔记】第一天 各种配置

    [基于spark IM 的二次开发笔记]第一天 各种配置 http://juforg.iteye.com/blog/1870487 http://www.igniterealtime.org/down ...

  6. 《Linux内核设计与实现》 第一二章学习笔记

    <Linux内核设计与实现> 第一二章学习笔记 第一章 Linux内核简介 1.1 Unix的历史 Unix的特点 Unix很简洁,所提供的系统调用都有很明确的设计目的. Unix中一切皆 ...

  7. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

  8. phpcms二次开发笔记

    phpcms二次开发笔记 --soulsjie 以下载的全新的phpcms搭建一个新的站点为例,讲解如何利用phpcms进行二次开发 一.下载和安装phpcms http://www.phpcms.c ...

  9. UWP入门(二) -- 基础笔记

    原文:UWP入门(二) -- 基础笔记 不错的UWP入门视频,1092417123,欢迎交流 UWP-04 - What i XMAL? XAML - XML Syntax(语法) ,create i ...

随机推荐

  1. Regex 正则表达式入门

    0,什么是正则表达式 正则表达式(Regular Expression简写为Regex),又称为规则表达式,它是一种强大的文本匹配模式,其用于在字符串中查找匹配符合特定规则的子串. 正则表达式是独立于 ...

  2. Linux暂时提升非root用户的权限

    sudo 用于提升非root用户的某些命令执行权限 1,使用root用户,复制vim /etc/sudoers 文件的第91行修改为,想提升的用户名称 root ALL=(ALL) ALL admin ...

  3. 送你一份Redis书单,以后使用缓存的问题不用再问我啦!

    点击蓝色"程序员书单"关注我哟 加个"星标",每天带你读好书!

  4. [js进阶1]-数据类型

    基本数据类型 js 总的有7中数据类型,包括基本类型和引用类型 基本类型 6 种 number boolean string null undefiend symbol 前5种类型统称为原始类型 sy ...

  5. 【MySQL基础总结】常用函数库

    常用函数库 数学函数 分类及含义 示例 字符串函数 分类及含义 示例 日期时间函数 分类及含义 示例 条件判断函数 分类及含义 示例 系统函数 分类及含义 加密函数 分类及定义 其他常用函数 分类及含 ...

  6. 【Hadoop离线基础总结】Hive的安装部署以及使用方式

    Hive的安装部署以及使用方式 安装部署 Derby版hive直接使用 cd /export/softwares 将上传的hive软件包解压:tar -zxvf hive-1.1.0-cdh5.14. ...

  7. vue.js 实现点击展开收起动画

    最近公司项目加了个页面,其中要求是这样的,点击对应列表,展开和收起, 其实就是显示和隐藏内容部分:说来惭愧,我花了半天时间才搞出来(自黑一下~), ,,接下来分享给大家,先上效果图: .vue页面: ...

  8. [hdu4768]二分

    http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:n个传单分别发给编号为ai, ai + ci, ai + 2 * ci, .. , ai + k * ...

  9. Java ThreadLocal解析

    简介 ThreadLocal 类似局部变量,解决了单个线程维护自己线程内的变量值(存.取.删),让线程之间的数据进行隔离.(InheritableThreadLocal 特例) 这里涉及三个类,Thr ...

  10. python--正则表达式|re模块学习

    学习来源:https://www.liaoxuefeng.com/wiki/1016959663602400/1017639890281664 正则表达式是一种用来匹配字符串的一种强大的武器,用一种描 ...