react数据流
Props#
react 是单向数据流(只能流向组件树中比自己层级更低的组件),在组件的通信上 需要基于 Props 进行数据通信
父传子#
- 利用props向下传递数据
- props是只读属性,子组件并不能更改
子传父#
- 此方法,只能在子组件中有触发条件的时候,才可以获得内容
- 通过函数传递参数,让父亲获得子组件中传出的数据
兄弟#
- 兄弟之间的参数传递,需要通过父组件进行周转
- 父组件把从兄弟1那里拿到的数据。通过props,传给兄弟2
- 相当于 子传父 + 父传子

发布订阅#
事件对象#
通过事件对象进行通信#
- Pub Sub为兄弟关系
- Pub在初始化的时候订阅了setPub事件
- 在Sub想给Pub数据的时候,点击按钮,Pub就会拿到Sub发来的数据,通过event类做数据中转
- 在离开页面的时候要取消订阅
Context#
- Context 是 react 中内置解决多层传参问题的API
- 新版 context 已经解决 shouldComponentUpdate 为 false 阻止的问题
- 输出
Redux#
- redux 是严格的单向数据流
- 三个概念, action -- 动作、 reducer -- 过滤器、 store--仓库
概念#
store单一数据流 只读。Action派发动作,只有派发可以修改动作Reducer过滤器,把最近的state给到view层
方法#
- bindActionCreators(fn, store.dispatch) -- 减去手动dispatch的麻烦,封装dispatch方法
- combinReducers -- 多个reducer合并为一个,用于多个组件项目reduce单独管理,然后合并的情况
- createStore(reducer, initState, applyMiddleware()) -- 核心方法 用于创建store对象
- getState -- 获得最新的状态数据
- subscribe -- 进行动作的监听,返回值是取消监听函数
- dispatch -- 动作派发