Redux学习笔记:Redux简易开发步骤
该文章不介绍Redux基础,也不解释各种乱乱的概念,网上一搜一大堆。只讲使用Redux开发一个功能的步骤,希望可以类我的小白们,拜托它众多概念的毒害,大牛请绕道!
本文实例源代码参考:React-Redux-Primary-Demo 中的webapp/redux/index.js、webapp/redux/reducers/index.js、webapp/redux/components/Counter.js(为了讲解方面,本文示例代码所有改动,但大致相同)。
演示地址:Redux实例演示
1.创建主文件js,比如index.js
2.定义render入口并调用Counter
const render = () => ReactDOM.render(
<Counter showtxt={} clickHandle={}/>,$('#wrapper')[0]
)
3.定义Counter,也就是React Component,生成DOM结构,render时触发。
class Counter extends Component {
render() {
return <div onClick={this.props.clickHandle}>我是Counter的div。{this.props.showtxt}</div>
}
}
export default Counter
4.初始化显示,手动调用render(),第一次初始化时定义,后续不在执行。
render();
至此,就可以吧Counter内容显示到页面上了。接下来我们就来实现clickHandle事件。
重要说明:Redux是通过改变状态state来改变视图view的(他们是一一对应的),但是我们不能像React那样setState,只能通过Reducer生成新的state,而Reducer执行是通过store.dispatch调用的。
基于这一点,我们继续。。。
5.创建store,并绑定reducer
const store = createStore(reducer); // createStore的第一个参数必须是个函数,store.dispatch()时执行,该函数就叫reducer
6.定义Action,调用store.dispatch
<Counter showtxt={store.getState().showtxt} clickHandle={() => {store.dispatch({ type: 'clickdiv' })}}/>,$('#wrapper')[0]) // 修改步骤2的代码
7.定义Reducer,生成新的state
function counter(state = {count: 0,showtxt: ''}, action) {
const count = state.count
switch (action.type) {
case 'clickdiv':
return {
count: count + 1,
showtxt: '你不小心点到了我' + (count + 1) + '次'
}
default:
return state
}
}
说明:这里只修改要state中变化的值,如果state是对象,return的时候需要把其他值带上。
到这里,貌似已经完整了,点击只执行store.dispatch、调用Reducer生成新的state,state又和view绑定自动更新,应该可以了吧?
实际不可以,因为,上面只是生成了新额state,要想跟view绑定,还有最后一步:监听state变化执行render。
8. 定义state变化监听
store.subscribe(render)
至此,redux基本调用流程彻底完成。流程总结如下:

Redux学习笔记:Redux简易开发步骤的更多相关文章
- React+Redux学习笔记:React+Redux简易开发步骤
前言 React+Redux 分为两部分: UI组件:即React组件,也叫用户自定义UI组件,用于渲染DOM 容器组件:即Redux逻辑,处理数据和业务逻辑,支持所有Redux API,参考之前的文 ...
- Android(java)学习笔记219:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- APPCAN学习笔记003---原生开发与HTML5技术
APPCAN学习笔记003---原生开发与HTML5技术 技术qq交流群:JavaDream:251572072 1.HTML5的优势: HTML5强悍牢固的骨架 CSS3精致到每一个毛孔的皮 ...
- APPCAN学习笔记001---app高速开发AppCan.cn平台概述
1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
- Android(java)学习笔记162:开发一个多界面的应用程序之两种意图
1.两种意图: (1)显式意图: 在代码里面用intent设置要开启Activity的字节码.class文件: (2)隐式意图: Android(java)学习笔记218:开发一个多界面的应用程序之人 ...
- jsp学习笔记:mvc开发模式
jsp学习笔记:mvc开发模式2017-10-12 22:17:33 model(javabe)与view层交互 view(视图层,html.jsp) controller(控制层,处理用户提交的信息 ...
- Qlik Sense学习笔记之Mashup开发(二)
date: 2019-01-26 11:28:07 updated: 2019-01-26 11:28:07 Qlik Sense学习笔记之Mashup开发(二) 1.Mobile SPA UI Fr ...
- Qlik Sense学习笔记之Mashup开发(一)
date: 2018-12-21 12:33:29 updated: 2018-12-21 12:33:29 Qlik Sense学习笔记之Mashup开发(一) 1.基于Qlik Sense API ...
- React Redux学习笔记
React Router React Router 使用教程 Redux中间件middleware [译]深入浅出Redux中间件 Redux学习之一:何为middleware? ES6 ES6新特性 ...
随机推荐
- 第35篇 IIS执行原理
服务器的监听(IIS6.0+版本) 当请求到达服务器时,请求最终会到达TCPIP.SYS驱动程序,TCPIP.SYS将请求转发给HTTP.SYS网络驱动程序的请求队列中(可以理解为专门处理http请求 ...
- Asp.Net MVC 之 Autofac 初步使用1
Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个: 优点: 它是C#语言联系很紧密,也就是说C#里的很多编程方式都可以为Autofac使用 较低的学习曲线,学习它非常的简单, ...
- iOS 图片裁剪 + 旋转
iOS 图片裁剪 + 旋转 之前分别介绍了图片裁剪和图片旋转方法 <iOS 图片裁剪方法> 地址:http://www.cnblogs.com/silence-cnblogs/p/6490 ...
- ELK日志套件安装与使用
1.ELK介绍 ELK不是一款软件,而是elasticsearch+Logstash+kibana三款开源软件组合而成的日志收集处理套件,堪称神器.其中Logstash负责日志收集,elast ...
- Laptop Ubuntu16.04/14.04 安装Nvidia显卡驱动
笔记本型号 机械革命(MECHREVO)深海泰坦X6Ti-S(黑曜金)15.6英寸 CPU型号 i5-7300HQ 内存 8G 硬盘容量 128SSD+1T机械硬盘 显卡 GeForce GTX 10 ...
- 从零开始学习Vue(三)
我们从一个例子来学习组件,vuejs2.0实战:仿豆瓣app项目,创建自定义组件tabbar 这个例子用到其他组件,对于初学者来说,一下子要了解那么多组件的使用,会变得一头雾水.所以我把这个例子改写了 ...
- Java虚拟机(JVM)
Java虚拟机 Java字节码通过类加载器(Class Loader)为程序的执行加载所需要的全部类.在类的加载过程中,由于是按照先加载启动类库.再加载扩展类库最后加载用户自定义类库的顺序,从而避免一 ...
- 使用Three.js网页引擎创建酷炫的3D效果的标签墙
使用Three.js引擎(这是开源的webgl三维引擎,gitgub)进行一个简单应用. 做一个酷炫的3d效果的标签墙(已经放在我的博客首页,大屏幕可见), 去我的博客首页看看实际效果 www.son ...
- SEO-外部链接类型以及标准
外部链接 外链的作用:宣传你的网站 相信大家都听过"内链为王,外链为皇"这句话,不管这句话对不对,从这句话上面,我们都能体会到外链的重要性. 外链类型: 1.博客 2.论坛 3.分 ...
- 你真的会 snapshot 吗? - 每天5分钟玩转 OpenStack(163)
这是 OpenStack 实施经验分享系列的第 13 篇. instance snapshot 操作可用于备份或者将 instance 保存为新的 image.如果在生产系统中执行 snapshot ...