react-redux深度学习

state:维护组件内部数据状态
store是应用状态state的管理者

1.getState() # 获取整个state
2.dispatch(action) # 触发state改变的【唯一途径】
3.subscribe(listener) # DOM中的addEventListtener
4.replaceReducer(nextReducer) # 一般在Webpack

state和store关系是: state = store.getState()
redux规定,一个应用只应有一个单一的store,其管理者唯一的应用状态state
redux还规定,不能直接修改应用的状态state,

var state = store.getState()
state.counter = state.counter + 1  // 禁止在业务逻辑中直接修改state

props:维护组件外部传入数据的信息

context: 维护跨级组件信息的传递

redux,数据状态栏

APP search/ MovieList/Login/Movie

核心概念:

1.单一数据源: 使用redux的程序,所有的state都存储在一个单一的数据store内部,类似一个巨大的对象树
2.state是只读的:state是只读的,能改变state的唯一方式是通过触发action来修改
3.使用纯函数执行修改:为了描述action如何改变state store,你需要编写reducers.
reducers是一些纯函数,接口当前state和action,只需要根据action,返回对应的state,
一个函数的返回结果只依赖于它的参数,并且在执行的过程里面没有副作用,我们就把这个函数叫纯函数

基础:

action:
顾名思义,action就是动作,也就是通过动作来修改state的值,也是修改store的唯一途径。
acting本质就是一个普通的js对象,我们约定这个对象必须要有一个字段type,来表示我们的
动作名称,一般我们会使用一个常量来表示 type对应的值
此外,我们还会把希望state变成什么样子的对应的值来通过action传进来,那么这里action可能会类似这样子的:
{
	type: 'TOGGLE_TODO',		// 动作的名称
	index: 5
}
Reducer:
action只是描述了有事情发生这件事实,但并没有说明要做哪些改变,这这是reducer需要做的事情
Reducer作为纯函数,内部不建议使用任何有副作用的操作,比如外部变量,任何导致相同输入
却有输出结果不一样的操作
如果我们的reducer比较多,比较复杂,我们不能把所有的逻辑都放到一个reducer里面去处
理,这个时候我们就需要拆分reducer
就可以用redux提供的api就是combineReducers Api
store:store就是redux应用的唯一数据源就,我们调用createStore Api创建store
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值