Redux概述

Redux = Reducer + Flux

安装ant design

yarn add antd

Store的创建

src目录下, 创建store文件夹,创建文件index.js
index.js

import { createStore } from 'redux';
import reducer from './reducer';
const store = createStore(reducer);export default store;

reducer.js

const defaultState = {inputValue: '123',list:[1,2]
}export default (state = defaultState, action) => {if(action.type === 'change_input_value') {const newState = JSON.parse(JSON.stringify(state));newState.inputValue = action.value;return newState;}if(action.type === 'add_todo_item') {const newState = JSON.parse(JSON.stringify(state));newState.list.push(newState.inputValue);newState.inputValue = '';return newState;}console.log(state, action);return state;
}

todoList.js

import store from './store';class TodoList extends Component {constructor(props) {super(props);// 从store中取数据this.state = store.getState();this.handleInputChange = this.handleInputChange.bind(this);this.handleStoreChange = this.handleStoreChange.bind(this);this.handleBtnClick = this.handleBtnClick.bind(this);store.subscribe(this.handleStoreChange);}
}

安装redux 开发工具

  • 工具:redux devtools
  • 监听Input变化

TodoList.js

  <Inputvalue = {this.state.inputValue}placeholder = "todo info"style = {{width: '300px', marginRight: '10px'}}onChange={this.handleInputChange}/><Button type="primary" onClick={this.handleBtnClick}>提交</Button>
handleInputChange(e) {const action = {type: 'change_input_value',value: e.target.value}store.dispatch(action);
}handleStoreChange() {// console.log('store changed');this.setState(store.getState());
}handleBtnClick() {const action = {type: 'add_todo_item'};store.dispatch(action);
}

Redux注意点

  • store是唯一的
  • 只有store能改变自己的内容
  • Reducer必须是纯函数

Redux API

  • createStore
  • store.dispatch
  • store.getState
  • store.subscribe

【React.js】之Redux相关推荐

  1. 彻底征服 React.js + Flux + Redux【讲师辅导】-曾亮-专题视频课程

    彻底征服 React.js + Flux + Redux[讲师辅导]-74574人已学习 课程介绍         [会员免费]链接 http://edu.csdn.net/lecturer/585 ...

  2. React.js 小书 Lesson27 - 实战分析:评论功能(六)

    React.js 小书 Lesson27 - 实战分析:评论功能(六) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson27 转载请注明出 ...

  3. 使用webpack2.0 搭建react.js项目

    最近一段时间没有写react.js,发现webpack已经完全升级为2.0了,升级后导致以前的项目不能正常编译,只能重新实践一番 关于webpack2.0和1.x的区别概括起来就是tree shaki ...

  4. React.js 小书 Lesson5 - React.js 基本环境安装

    React.js 小书 Lesson5 - React.js 基本环境安装 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson5 转载请注明 ...

  5. React.js 2016 最佳实践 徬梓阅读 1584收藏 71

    为什么80%的码农都做不了架构师?>>>    译者按:近几个月React相关话题依旧火热,相信越来越多的开发者在尝试这样一项技术,我们团队也在PC和移动端不断总结经验.2016来了 ...

  6. 撰写本文的所有基本React.js概念

    Update: This article is now part of my book "React.js Beyond The Basics". 更新:本文现在是我的书<超 ...

  7. React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了

    原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...

  8. 2020 年,React.js 开发者如何更好地修炼内功?

    整理 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) ReactJS(简称Reat)是最流行的前端框架.它由Facebook开发,近年来发展迅猛,已成为了基于组件GUI开发的标 ...

  9. [译] 我多希望在我学习 React.js 之前就已经知晓这些小窍门

    原文地址:What I wish I knew when I started to work with React.js 原文作者:David Yu 译文出自:掘金翻译计划 本文永久链接:github ...

  10. React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起

    React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...

最新文章

  1. C# 中的委托和事件(1)
  2. css animation动画完成后隐藏_如何使用CSS实现旋转地球动画效果
  3. Asp.net常用的操作函数
  4. 安装 sql server时变更检查解决方案
  5. TMS物流运输管理系统、智慧物流、智能运输、运单管理、预开单、补录运单、提货管理、库存管理、签收管理、短驳管理、车辆配载、送货管理、回单管理、退货管理、中转管理、承运商、路由、车线、司机、油卡、车辆
  6. 灵眸action_DJI OSMO Action 灵眸运动相机
  7. activemq消息丢失_基于Redis实现消息队列的典型方案
  8. Hercules配置文件HERCULES.CNF范本
  9. Callback Promise Generator Async-Await 和异常处理的演进
  10. LINUX下载编译opusfile/opus-tools
  11. C++string的查找和替换
  12. jar逆向工具Luyten
  13. 如何在被保护的工作表(Worksheet)中使用Group Outlining
  14. 学习笔记(一)---Docker概述
  15. New Year Snowmen((贪心)map+优先队列)
  16. group by column中的column与前面条件发生的错误的解决方案
  17. EMC | 静电防护方法
  18. 工商名人堂 爱德华·约翰逊二世---富达基金的崛起(转载自新浪)
  19. linux生成了.swp文件怎么办
  20. 系统镜像的方法,大批量电脑重装的方法

热门文章

  1. 鲁棒优化入门(二)——基于matlab+yalmip求解鲁棒优化问题
  2. 《现代汉语常用字表》
  3. orecal 中的trim
  4. 白帽子讲Web安全读书笔记
  5. python下载显示文件丢失连不上网_python39.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“python39.dll找不到”的系统问题...
  6. 3G到底有多快 三家运营商3G网速大比拼
  7. 基于安卓Android的企业员工管理系统设计与实现
  8. 环保数据采集仪_环保采集仪_环保数据采集器
  9. for while循环、if判断
  10. 2004全国城市GDP排名(前40名)