没有合适的资源?快使用搜索试试~ 我知道了~
一篇文章介绍redux、react-redux、redux-saga总结
0 下载量 144 浏览量
2020-12-11
00:08:20
上传
评论
收藏 165KB PDF 举报
温馨提示
本篇主要将react全家桶的产品非常精炼的提取了核心内容,精华程度堪比精油。各位大人,既然来了,客官您坐,来人,给客官看茶~~ redux 前言 首先,本篇文章要求您对js,react等知识有一定的了解,如果不曾了解,建议您先看一下:React精髓!一篇全概括(急速) React有props和state: props意味着父级分发下来的属性 state意味着组件内部可以自行管理的状态,并且整个React没有数据向上回溯的能力,这就是react的单向数据流 这就意味着如果是一个数据状态非常复杂的应用,更多的时候发现React根本无法让两个组件互相交流,使用对方的数据,react的通过
资源推荐
资源详情
资源评论






























一篇文章介绍一篇文章介绍redux、、react-redux、、redux-saga总结总结
本篇主要将react全家桶的产品非常精炼的提取了核心内容,精华程度堪比精油。各位大人,既然来了,客官您坐,来人,给
客官看茶~~
redux
前言
首先,本篇文章要求您对js,react等知识有一定的了解,如果不曾了解,建议您先看一下:React精髓!一篇全概括(急速)
React有props和state:
props意味着父级分发下来的属性
state意味着组件内部可以自行管理的状态,并且整个React没有数据向上回溯的能力,这就是react的单向数据流
这就意味着如果是一个数据状态非常复杂的应用,更多的时候发现React根本无法让两个组件互相交流,使用对方的数
据,react的通过层级传递数据的这种方法是非常难受的,这个时候,迫切需要一个机制,把所有的state集中到组件顶部,能
够灵活的将所有state各取所需的分发给所有的组件,是的,这就是redux
简介简介
redux是的诞生是为了给 React 应用提供「可预测化的状态管理」机制。
Redux会将整个应用状态(其实也就是数据)存储到到一个地方,称为store
这个store里面保存一棵状态树(state tree)
组件改变state的唯一方法是通过调用store的dispatch方法,触发一个action,这个action被对应的reducer处理,于是state完
成更新
组件可以派发(dispatch)行为(action)给store,而不是直接通知其它组件
其它组件可以通过订阅store中的状态(state)来刷新自己的视图
使用步骤使用步骤
创建reducer
可以使用单独的一个reducer,也可以将多个reducer合并为一个reducer,即:combineReducers()
action发出命令后将state放入reucer加工函数中,返回新的state,对state进行加工处理
创建action
用户是接触不到state的,只能有view触发,所以,这个action可以理解为指令,需要发出多少动作就有多少指令
action是一个对象,必须有一个叫type的参数,定义action类型
创建的store,使用createStore方法
store 可以理解为有多个加工机器的总工厂
提供subscribe,dispatch,getState这些方法。
按步骤手把手实战。
上述步骤,对应的序号,我会在相关代码标出
npm install redux -S // 安装
import { createStore } from 'redux' // 引入
const reducer = (state = {count: 0}, action) => {----------> ⑴
switch (action.type){
case 'INCREASE': return {count: state.count + 1};
case 'DECREASE': return {count: state.count - 1};
default: return state;
}
}
const actions = {---------->⑵
increase: () => ({type: 'INCREASE'}),
decrease: () => ({type: 'DECREASE'})
}
const store = createStore(reducer);---------->⑶

store.subscribe(() =>
console.log(store.getState())
);
store.dispatch(actions.increase()) // {count: 1}
store.dispatch(actions.increase()) // {count: 2}
store.dispatch(actions.increase()) // {count: 3}
自己画了一张非常简陋的流程图,方便理解redux的工作流程
react-redux
刚开始就说了,如果把store直接集成到React应用的顶层props里面,只要各个子组件能访问到顶层props就行了,比如这样:
<顶层组件 store={store}>
<App />
</顶层组件>
不就ok了吗?这就是 react-redux。Redux 官方提供的 React 绑定库。 具有高效且灵活的特性。
React Redux 将组件区分为 容器组件 和 UI 组件
前者会处理逻辑
后者只负责显示和交互,内部不处理逻辑,状态完全由外部掌控
两个核心两个核心
Provider
看我上边那个代码的顶层组件4个字。对,你没有猜错。这个顶级组件就是Provider,一般我们都将顶层组件包裹在Provider组
件之中,这样的话,所有组件就都可以在react-redux的控制之下了,但是store必须作为参数放到Provider组件中去
<Provider store = {store}>
<App />
<Provider>
这个组件的目的是让所有组件都能够访问到Redux中的数据。
connect
这个才是react-redux中比较难的部分,我们详细解释一下
首先,先记住下边的这行代码:
connect(mapStateToProps, mapDispatchToProps)(MyComponent)
mapStateToProps
这个单词翻译过来就是把state映射到props中去 ,其实也就是把Redux中的数据映射到React中的props中去。
举个栗子:
const mapStateToProps = (state) => {
return {
// prop : state.xxx | 意思是将state中的某个数据映射到props中
foo: state.bar
}
}
然后渲染的时候就可以使用this.props.foo
剩余6页未读,继续阅读
资源评论


weixin_38544152
- 粉丝: 4
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 浅析人工智能在电子信息技术中的应用.docx
- 计算机控制系统.ppt
- Excel2003精品教程使用图表.ppt
- 光通信技术外文翻译.doc
- 网络安全建设方案.doc
- PLC控制八层电梯大学设计.doc
- 网络视频监控在中小学中的应用设计方案-教育文博.docx
- 气动机械手升降臂结构设计-面板操纵式(有动力)点位示教部分控制软件设计.doc
- 柳州职业技术学院综合布线.doc
- Java拼图游戏课程设计分析方案.doc
- 基于优课联盟的图像处理技术课程教学探索.docx
- 《微机原理接口技术》典型习题参考答案.doc
- 基于rs单片机多机串行通信的电子开关设计.doc
- 信息系统安全应急预案.doc
- jsp技术的企业网站.doc
- 论信息化内部控制审计与信息系统审计.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
