redux一些自习时候自己写的的单词
setState:设置状态
render:渲染,挂载
dispatchEvent : 派发事件
dispatch:分发,派遣;库里的一个方法,简而言之相当于一个actions和reducer监听方法更新 state
provider:提供者
combine :合并
reduce : 减少,降低,使处于,把。。。分解
loadable:可加载模块
action:动作,方法,代表用户的操作, 我们在完善action的属性,除了type属性唯一(大写),都可以自定义
reducer:缩减 (我们用来写方法的)因为 action 对象各种各样,每种对应某个 case ,但最后都汇总到 state 对象中,从多到一,这是一个减少( reduce )的过程,所以完成这个过程的函数叫 reducer。reducer一定要保持纯净。只要传入参数相同,返回计算得到的下一个 state 就一定相同。没有特殊情况、没有副作用,没有 API 请求、没有变量修改,单纯执行计算。
return {
...state,
userName: action.payload
}
increment:增加
decrement:缩减
connect:链接,关联
paylod:有效负载
createStore:创建仓库(redux库)
counte:计算
mapStateToProps: 映射分发数据,从Store中读取状态: 容器组件向store声明需要的state的地方,因为我们的store是整个应用只有一份,根据redux的思想通过context可以保证每一个组件都可以从context中获取到store,不需 要一级一级的从顶层传递下来
mapDispatchToProps:映射分发方法:意义类比上面
combineRedusers: 所做的只是生成一个函数,这个函数来调用你的一系列 reducer,每个 reducer 筛选出 state 中的一部分数据并处理,然后这个生成的函数再将所有 reducer 的结果合并成一个大的对象。
1,安装包redux 有时候还需要绑定 react-redux (react绑定库) 和 (redux-devtools) 开发者工具
2, 创建两个文件夹分别创建index,js
(1)actions 和 reducers 一个放方法,一个放数据
(2)将这两个文件关联起来 在app的index.js里,
引入Provider从react-redux里
引入createStore从redux里
从reducers里引入rootReducer
3,创建库store = createStore(rootReducer) 我们用创建库方法来以存放应用中所有的 state
4.我们创建了一个Hello模块来给大家展示redux
创建Hello模块将App标签包裹,但是!!1
我们用Provider组件将return出来的东西包裹,
connect方法生成容器组件以后,需要让容器组件拿到state对象,才能生成 UI 组件的参数。
这样,0App的所有子组件就默认都可以拿到state了。
同时,我们直接渲染到root根节点的App也就改成了Hello
5.reducer的index里,从包里拿到 redux 里的 combineReducer(合并reducer方法)
再将reducer所有文件引入,集体抛出
import {combineReducers} from "redux"
import counter from './counter'
export default combineReducers({
counter,
})
6、在reduers的其他文件里面呢,就是建立我们的数据,然后抛出库以及操作
export default (state = initialState,action) => {
switch (action.type){
case 'INCREMENT':
return {
...state,//拷贝一下,因为不想改变原始数据
num:state.num+1
}
default:
return state
}
}
7,actions里面的 index 添加
import * as counterCreator from './counter'
export {
counterCreator
}
8. actions里面的的counter文件里面写
export function increment(){ //设置一个默认方法叫做增加
return {
type:'INCREMENT' //返回type type大写,与方法名匹配
}
}
9.最后我们主界面的代码
//在对应的包里拿到高阶方法 connet
import { connect } from 'react-redux'
import { counterCreator } from '../actions'
//定义 mapStateToProps 和 mapDispatchToProps两个方法
//返回的数据
const mapStateToProps = (state) => {
return {
$$counter: state.counter.num
}
}
const mapDispatchToProps = (dispatch) => ({
increment: () => dispatch(counterCreator.increment())
})
export default connect(
mapStateToProps ,
mapDispatchoProps
)(主界面的组件名)
redux一些自习时候自己写的的单词的更多相关文章
- 手写 redux 和 react-redux
1.手写 redux redux.js /** * 手写 redux */ export function createStore(reducer) { // 当前状态 let currentStat ...
- 还在纠结 Flux 或 Relay,或许 Redux 更适合你
重磅消息,Redux 1.0 发布,终于可以放心用于生产环境了! 在这个端应用技术膨胀的时代,每天都有一大堆框架冒出,号称解决了 XYZ 等一系列牛 X 的问题,然后过一段时间就不被提起了.但开发的应 ...
- redux源码解析-redux的架构
redux很小的一个框架,是从flux演变过来的,尽管只有775行,但是它的功能很重要.react要应用于生成环境必须要用flux或者redux,redux是flux的进化产物,优于flux. 而且r ...
- redux超易学三篇之二(开始使用react-redux)
其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...
- 在react项目中使用redux or mobx?
主要比较参数: 库体积,打包项目体积 开发体验 性能对比 在对比参数前首先分析一下redux和mobx的设计模式,redux和mobx都没有使用传统的mvc/mvvm形式,而且他们使用flux结构也略 ...
- Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!
英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...
- 使用bat(批处理文件类型)两步更改笔记本IP
一.背景 在南农工的第三年里,学校终于给教学区覆盖了无线网NJAUPK,这解决了我在汇贤楼教室上自习没网写web的尴尬处境!经常在9栋和汇贤楼教学区之间来回,遇见了一个大问题:宿舍里无线需要更改IPV ...
- 英语之路 zt
各位为英语而郁闷的兄弟姐妹们: 自从考完GRE和TOEFL以后,心有所感,本想写点心得,但是因为太懒没写成.今日风雨如晦,心中又有所感,于是一舒笔墨,写下我学英语的方法.俺知道有很多兄弟姐妹们和曾经的 ...
- 浅谈SPA
最近一直在学习关于Vue的一些知识,由于遇到了问题,去网上查找资料,收获颇丰,在此分享. 1. 什么是SPA? 单页Web应用(single page web application, SPA),就是 ...
随机推荐
- 小程序clearinterval无效解决
小程序clearinterval无效解决 小程序clearinterval清除定时器无效,原因是定时器使用与清除方法不对导致的,我们应将定时器绑定变量,这样在关闭页面清空定时器clearinterva ...
- TabHost选项卡的实现(一):使用TabActivity实现
一. TabHost的基本开发流程 TabHost是一种非常实用的组件,可以很方便的在窗口上防止多个标签页,每个标签页相当于获得了一个外部容器相同大小的组件摆放区域. 我们熟悉的手机电话系统" ...
- Java Integer类的缓存
首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = ...
- Java中方法的格式
[修饰符] 返回值类型 方法名([参数类型 形式参数1,参数类型 形式参数2,……]) { 执行语句; [return 返回值;]//需要的话 } 参数列表(参数的类型 ...
- Gora是一个类似Hibernate的ORM框架
Gora是一个类似Hibernate的ORM框架,但是不只是支持关系数据库,更重要支持NoSQL之类大数据的存储. 支持NoSQL之类大数据的存储 Apache Gora是一个开源的ORM(Objec ...
- [转]C#中 ??、 ?、 ?: 、?.、?[ ] 问号
1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...
- 2019年湘潭大学程序设计竞赛(重现赛)F.Black&White
传送门 F.Black&White •题意 操作 m 次后,求连续的1或连续的0的最大值,每次操作只能反转一个位置: •思路1(反悔操作) 定义队列q:依次存放两个零之间的1的个数+1: 首先 ...
- H3C 域名解析显示及维护
- Linux 内核即插即用规范
一些新 ISA 设备板遵循特殊的设计规范并且需要一个特别的初始化顺序, 对增加接口板 的简单安装和配置的扩展. 这些板的设计规范称为即插即用, 由一个麻烦的规则集组成, 来建立和配置无跳线的 ISA ...
- wpf passwobox 添加水印
之前有做过wpf texbox添加水印,这个并不难 重写一下样式就可以了,今天用到了passwordbox 添加水印的时候 发现还是有点难度的. 这个难度就在于如何去取password的长度来控制水印 ...