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一些自习时候自己写的的单词的更多相关文章

  1. 手写 redux 和 react-redux

    1.手写 redux redux.js /** * 手写 redux */ export function createStore(reducer) { // 当前状态 let currentStat ...

  2. 还在纠结 Flux 或 Relay,或许 Redux 更适合你

    重磅消息,Redux 1.0 发布,终于可以放心用于生产环境了! 在这个端应用技术膨胀的时代,每天都有一大堆框架冒出,号称解决了 XYZ 等一系列牛 X 的问题,然后过一段时间就不被提起了.但开发的应 ...

  3. redux源码解析-redux的架构

    redux很小的一个框架,是从flux演变过来的,尽管只有775行,但是它的功能很重要.react要应用于生成环境必须要用flux或者redux,redux是flux的进化产物,优于flux. 而且r ...

  4. redux超易学三篇之二(开始使用react-redux)

    其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...

  5. 在react项目中使用redux or mobx?

    主要比较参数: 库体积,打包项目体积 开发体验 性能对比 在对比参数前首先分析一下redux和mobx的设计模式,redux和mobx都没有使用传统的mvc/mvvm形式,而且他们使用flux结构也略 ...

  6. Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!

    英语单词学习应用 周五发布的文章Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署发布后,看到喜欢的人比较多.本来周末打算照着扇贝/极光单词,写一个英语单词自测工具.但苦 ...

  7. 使用bat(批处理文件类型)两步更改笔记本IP

    一.背景 在南农工的第三年里,学校终于给教学区覆盖了无线网NJAUPK,这解决了我在汇贤楼教室上自习没网写web的尴尬处境!经常在9栋和汇贤楼教学区之间来回,遇见了一个大问题:宿舍里无线需要更改IPV ...

  8. 英语之路 zt

    各位为英语而郁闷的兄弟姐妹们: 自从考完GRE和TOEFL以后,心有所感,本想写点心得,但是因为太懒没写成.今日风雨如晦,心中又有所感,于是一舒笔墨,写下我学英语的方法.俺知道有很多兄弟姐妹们和曾经的 ...

  9. 浅谈SPA

    最近一直在学习关于Vue的一些知识,由于遇到了问题,去网上查找资料,收获颇丰,在此分享. 1. 什么是SPA? 单页Web应用(single page web application, SPA),就是 ...

随机推荐

  1. Android本地数据存储: ASimpleCache

    一:前言 在上一篇博客Android本地数据存储: Reservoir 博客中,我提到,除了Reservoir库,还可以采用ASimpleCache开源库,来实现本地数据存储.昨天并没有仔细的对比Re ...

  2. uva 100 The 3n + 1 problem (RMQ)

    uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem= ...

  3. axios 跨域

    {     headers:{"Content-Type":"application/x-www-form-urlencoded;charset=utf-8"} ...

  4. Python--day40--复习和回调函数实例

  5. HDU 3397"Sequence operation"(线段树区间和并)

    传送门 •题意 给你一个仅包含 0 和 1 的序列: 在这个序列上有如下操作: (1)0 a b : 将 [a,b] 区间的数置 0: (2)1 a b : 将 [a,b] 区间的数置 1: (3)2 ...

  6. 2018-9-2-WPF-开发自动删除软件

    title author date CreateTime categories WPF 开发自动删除软件 lindexi 2018-09-02 14:51:48 +0800 2018-08-09 09 ...

  7. 2019-4-29-C#-从-short-转-byte-方法

    title author date CreateTime categories C# 从 short 转 byte 方法 lindexi 2019-4-29 12:8:39 +0800 2019-01 ...

  8. CentOS服务器安装mysql

    1.配置YUM源 下载mysql源安装包 [root@localhost~]#wget http://dev.mysql.com/get/mysql57-community-release-el7-8 ...

  9. Linux 内核引用计数的操作

    一个 kobject 的其中一个关键函数是作为一个引用计数器, 给一个它被嵌入的对象. 只 要对这个对象的引用存在, 这个对象( 和支持它的代码) 必须继续存在. 来操作一个 kobject 的引用计 ...

  10. Scala中 下划线的用处

    From:   http://congli.iteye.com/blog/2169401 1.作为“通配符”,类似Java中的*.如import scala.math._ 2.:_*作为一个整体,告诉 ...