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),就是 ...
随机推荐
- H3C 配置PAP验证
- Lifecycle mapping "org.eclipse.m2e.jdt.JarLifecycleMapping" Eclipse Maven报错
eclipse 项目中报错Lifecycle mapping "org.eclipse.m2e.jdt.JarLifecycleMapping" is not available, ...
- hdu 1128 Self Numbers
Self Numbers Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- 洛谷P1280 尼克的任务 题解 动态规划/最短路
作者:zifeiy 标签:动态规划.最短路 题目链接:https://www.luogu.org/problem/P1280 题目大意: 有k个任务分布在第1至n这n个时间点,第i个任务的于第 \(P ...
- Vue实现同级组件的通信
一.文件结构 二.vue.js 打开此链接 https://cdn.bootcss.com/vue/2.6.10/vue.js 复制粘贴页面的所有内容 三.index.html <!DOCTYP ...
- 再一次利用with as 优化SQL
上海的一个哥们问我有个SQL跑了4个小时都没跑完,实在受不了了,找我优化一下.我确实挺佩服他的,要是我遇到跑了几分钟的,就受不了了. SQL语句和执行计划如下: --sql id:1qbbw3th4x ...
- 关于Spring JavaWeb工程中的ContextRefreshedEvent事件
在应用启动时,通常想在此时预加载一些资源,全局使用. Spring会在操作应用上下文时,使用ApplicationEventPublisher触发相关ApplicationContextEvent,我 ...
- P1072 城市轰炸
题目描述 一个大小为N*M的城市遭到了X次轰炸,每次都炸了一个每条边都与边界平行的矩形. 在轰炸后,有Y个关键点,指挥官想知道,它们有没有受到过轰炸,如果有,被炸了几次,最后一次是第几轮. 输入格式 ...
- P1011 圆柱体的表面积
题目描述 输入底面半径 \(r\) 和高 \(h\) ,输出圆柱体的表面积,保留 \(3\) 位小数. 输入格式 输入包含两个实数 \(r,h(1 \le r,h \le 1000)\) 且保证输入的 ...
- Junit 测试集(打包测试)实例
测试集,直译过来的意思就是把测试集合起来,再详细一些就是把多个单元测试集合起来 .单元测试可以理解为:单个接口 或者单个类/方法 的测试 项目背景:测试基于spring开发的项目代码 实例模板:pac ...