redux相关API
redux中包含: createStore(), applyMiddleware(), combineReducers()
store对象: getState(), dispatch(), subscribe()
react-redux:
<Provider store={store}>: 向所有的容器组件提供store
connect(
state => ({xxx: state.xxx}),
{actionCreator1, actionCreator2}
)(UI组件):
产生的就是容器组件, 负责向UI组件传递标签属性,
一般属性值从state中获取, 函数属性内部会执行dispatch分发action
3. redux核心概念(3个)
action:
默认是对象(同步action), {type: 'xxx', data: value}, 需要通过对应的actionCreator产生,
它的值也可以是函数(异步action), 需要引入redux-thunk才可以
reducer
根据老的state和指定的action, 返回一个新的state
不能修改老的state
store
redux最核心的管理对象
内部管理着: state和reducer
提供方法: getState(), dispatch(action), subscribe(listener)
4. redux工作流程
redux 是一个应用数据流框架,主要是解决了组件间状态共享的问题,原理是集中式管理
主要有三个核心方法,action,store,reducer,
工作流程是 view 调用 store 的 dispatch 接收 action ,并将其传入 store,
store内部又悄悄的传给了reducer,reducer内部进行 state 操作,返回最新状态给store,
view 通过 store 提供的 getState 获取最新的数据.
其实redux就是Flux的一种进阶实现。主要区别在于 Flux 有多个可以改变应用状态的 store,
在 Flux 中 dispatcher 被用来传递数据到注册的回调事件,
但是在 redux 中只能定义一个可更新状态的 store,redux 把 store 和 Dispatcher 合并,结构更加简单,它是一个应用数据流框架,主要作用应用状态的管理redux的三大原则
1、单一的数据源
2、state是只读的
3、使用纯函数来进行修改
谈谈你对flux的理解
利用单项数据流的方式来