【React.js】之Redux
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相关推荐
- 彻底征服 React.js + Flux + Redux【讲师辅导】-曾亮-专题视频课程
彻底征服 React.js + Flux + Redux[讲师辅导]-74574人已学习 课程介绍 [会员免费]链接 http://edu.csdn.net/lecturer/585 ...
- React.js 小书 Lesson27 - 实战分析:评论功能(六)
React.js 小书 Lesson27 - 实战分析:评论功能(六) 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson27 转载请注明出 ...
- 使用webpack2.0 搭建react.js项目
最近一段时间没有写react.js,发现webpack已经完全升级为2.0了,升级后导致以前的项目不能正常编译,只能重新实践一番 关于webpack2.0和1.x的区别概括起来就是tree shaki ...
- React.js 小书 Lesson5 - React.js 基本环境安装
React.js 小书 Lesson5 - React.js 基本环境安装 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson5 转载请注明 ...
- React.js 2016 最佳实践 徬梓阅读 1584收藏 71
为什么80%的码农都做不了架构师?>>> 译者按:近几个月React相关话题依旧火热,相信越来越多的开发者在尝试这样一项技术,我们团队也在PC和移动端不断总结经验.2016来了 ...
- 撰写本文的所有基本React.js概念
Update: This article is now part of my book "React.js Beyond The Basics". 更新:本文现在是我的书<超 ...
- React.js 入门与实战之开发适配PC端及移动端新闻头条平台课程上线了
原文发表于我的技术博客 我在慕课网的「React.js 入门与实战之开发适配PC端及移动端新闻头条平台」课程已经上线了,文章中是目前整个课程的大纲,以后此课程还会保持持续更新,此大纲文档也会保持更新, ...
- 2020 年,React.js 开发者如何更好地修炼内功?
整理 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews) ReactJS(简称Reat)是最流行的前端框架.它由Facebook开发,近年来发展迅猛,已成为了基于组件GUI开发的标 ...
- [译] 我多希望在我学习 React.js 之前就已经知晓这些小窍门
原文地址:What I wish I knew when I started to work with React.js 原文作者:David Yu 译文出自:掘金翻译计划 本文永久链接:github ...
- React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起
React.js 小书 Lesson1-2 - 前端组件化(一):从一个简单的例子讲起 本文作者:胡子大哈 本文原文:http://huziketang.com/books/react/lesson2 ...
最新文章
- C# 中的委托和事件(1)
- css animation动画完成后隐藏_如何使用CSS实现旋转地球动画效果
- Asp.net常用的操作函数
- 安装 sql server时变更检查解决方案
- TMS物流运输管理系统、智慧物流、智能运输、运单管理、预开单、补录运单、提货管理、库存管理、签收管理、短驳管理、车辆配载、送货管理、回单管理、退货管理、中转管理、承运商、路由、车线、司机、油卡、车辆
- 灵眸action_DJI OSMO Action 灵眸运动相机
- activemq消息丢失_基于Redis实现消息队列的典型方案
- Hercules配置文件HERCULES.CNF范本
- Callback Promise Generator Async-Await 和异常处理的演进
- LINUX下载编译opusfile/opus-tools
- C++string的查找和替换
- jar逆向工具Luyten
- 如何在被保护的工作表(Worksheet)中使用Group Outlining
- 学习笔记(一)---Docker概述
- New Year Snowmen((贪心)map+优先队列)
- group by column中的column与前面条件发生的错误的解决方案
- EMC | 静电防护方法
- 工商名人堂 爱德华·约翰逊二世---富达基金的崛起(转载自新浪)
- linux生成了.swp文件怎么办
- 系统镜像的方法,大批量电脑重装的方法
热门文章
- 鲁棒优化入门(二)——基于matlab+yalmip求解鲁棒优化问题
- 《现代汉语常用字表》
- orecal 中的trim
- 白帽子讲Web安全读书笔记
- python下载显示文件丢失连不上网_python39.dll文件下载,金山毒霸dll修复工具帮您解决文件丢失导致“python39.dll找不到”的系统问题...
- 3G到底有多快 三家运营商3G网速大比拼
- 基于安卓Android的企业员工管理系统设计与实现
- 环保数据采集仪_环保采集仪_环保数据采集器
- for while循环、if判断
- 2004全国城市GDP排名(前40名)