redux超易学三篇之三(一个逻辑完整的react-redux)
配合源代码学习吧~ : 我是源代码
这一分支讲的是 如何完整地(不包含优化,也没有好看的页面) 搭建一个 增删改查 的 react-redux 系统
- 不同于上一节的 react-redux,这里主要采用 函数式组件。 函数式组件 = 函数式的写法 + 不需要state的组件。
其实函数式组件也就那么回事。 如果组件本身 没有需要 维护的 state,我们就可以使用 函数式组件。
react-redux 的一部分难度来源于 connect,其实它就是一个。。。 高阶函数!就是我们上一节说的。
作用:连接React组件与 Redux store。
connect之所以会成功,是因为Provider组件:在原应用组件上包裹一层,使原来整个应用成为Provider的子组件
其实它主要是一个链接函数,而它内部的参数是有固定格式的,比若说
connect([toProps函数,叫什么不重要], [mapDispatch函数], [mergeProps], [optiosn]);
toProps(state, ownProps) => 将 store 的数据映射到 props 上绑定。
toDispatch(dispatch, ownProps) => 将 action 的函数映射到 props 上绑定。
剩下两个一般不用。
还有一部分的难度在于 redux 的拆分,这个官网已经有例子了,这里就不放代码啦。
一步一步的优化
- 从 class 类的写法到 函数式的写法
- 从集成的 reducer 到拆分的 reducer
- 我们可以增加 保存在本地的 localStorage 来让我们的 app 更加真实一点
转成localStorage的过程中要注意,之前写的 toggle 函数(simple组件)中的 index 和 id 需要改动。
onClick={() => itemClick(item.id)}
- 我们可以给我们的 App 添加上适当的样式,让其看起来真的想一个 todolist。
其他
- form表单提交的时候会刷新页面。如果不希望刷新的话,需要:
例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。
e.preventDefault();
可以阻止诸如 提交的默认事件。- 除此之外,
e.stopPropagation();
可以阻止事件冒泡,顺带了解一下。
redux超易学三篇之三(一个逻辑完整的react-redux)的更多相关文章
- redux超易学三篇之二(开始使用react-redux)
其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...
- redux超易学三篇之一(单独说redux)
redux其实非常简单.当复杂的步骤被拆分,其实每一步都是很容易的. Github: 完整代码链接 本文在 create-react-app 中的 index.js 随便引入了一下. (其实不必如此. ...
- Hadoop总结篇之三---一个Job到底被提交到哪去了
我们会定义Job,我们会定义map和reduce程序.那么,这个Job到底是怎么提交的?提交到哪去了?它到底和集群怎么进行交互的呢? 这篇文章将从头讲起. 开发hadoop的程序时,一共有三大块,也就 ...
- 第三篇:一个Spark推荐系统引擎的实现
前言 经过2节对MovieLens数据集的学习,想必读者对MovieLens数据集认识的不错了:同时也顺带回顾了些Spark编程技巧,Python数据分析技巧. 本节将是让人兴奋的一节,它将实现一个基 ...
- git第三篇---建立一个project
Git global setup: git config --global user.name "xx" git config --global user.email " ...
- angular开发者吐槽react+redux的复杂:“一个demo证明你的开发效率低下”
曾经看到一篇文章,写的是jquery开发者吐槽angular的复杂.作为一个angular开发者,我来吐槽一下react+redux的复杂. 例子 为了让大家看得舒服,我用最简单的一个demo来展示r ...
- react + redux 完整的项目,同时写一下个人感悟
先附上项目源码地址和原文章地址:https://github.com/bailicangd... 做React需要会什么? react的功能其实很单一,主要负责渲染的功能,现有的框架,比如angula ...
- React Redux 与胖虎
这是一篇详尽的 React Redux 扫盲文. 对 React Redux 已经比较熟悉的同学可以直接看 <React Redux 与胖虎他妈>. 是什么 React Redux 是 R ...
- 分析RAC下一个SPFILE整合的三篇文章的文件更改
大约RAC下一个spfile分析_整理在_2014.4.17 说明:文章来源于网络 第一篇:RAC下SPFILE文件改动 在RAC下spfile位置的改动与单节点环境不全然一致,有些地方须要特别注意, ...
随机推荐
- 游戏引擎架构Note2
[游戏引擎架构Note2] 1.视觉属性(visual property)决定光线如何与物体表面产生交互作用. 2.一个Mesh所使用三角形的多少可以用细致程度(level-of-detail,LOD ...
- zookeeper伪集群的搭建
由于公司服务器数量的限制,我们往往没有那么多的服务器用来搭建zookeeper的集群,所以产生了伪集群的搭建,也就是将多个zookeeper搭建在同一台机器上. 准备工作: 1,一台服务器,我们这里用 ...
- 刷题向》关于一道像差分约束的数学题BZOJ1045(NORMAL)
关于这道题,乍一看很像查分约束,但是实际上这道题是可以用数学方法直接解决的. 这道题在蓝书上有原题,可以看到题解,在此再赘述一遍 首先,最终每个小朋友的糖果数量可以计算出来,等于糖果总数除以n,用av ...
- CF519E A and B and Lecture Rooms
最近很颓……难题想不动……水题写不对,NOIP怕是
- Part10-C语言环境初始化-Bss段初始化lesson2
1.BSS段的作用 初始化的全局变量存放在数据段: 局部变量存放在栈中: malloc的存放在堆: 未初始化的全局变量存放在BSS段: 找到bss段的起始与结束地址,往里面添加0,便初始化好了. 打开 ...
- hdu 1905 Pseudoprime numbers
#include<stdio.h> #include<math.h> #define ll long long ll mod; bool Judge(int x) { ;i&l ...
- Python基础入门-元祖
其实,元组合列表的特性和使用几乎差不太多,今天我们重点来看下元组的一些操作和使用. 1.元祖的定义和特点 定义:元组是以小括号包围,元素以逗号分隔,不可变的序列之一. 特点: 1)元祖内的元素不可以增 ...
- jquery.parser.js 的 parseOptions 方法
// target 是DOM元素 // properties 是宿主的属性 $.parser.parseOptions(target,properties); /** * parse options, ...
- bash/shell的字符串trim实现
#!/bin/sh trim() { trimmed=$1 trimmed=${trimmed%% } trimmed=${trimmed## } echo $trim ...
- 异步 Action 的定义
ASP.NET MVC 3中的异步 Action 通过两个匹配的方法XxxAsync/XxxCompleted 来定义,这样的异步 Action 只能定义在继承自 AsyncConoller 的类型中 ...