Open landv opened 3 years ago
https://www.cnblogs.com/landv/p/13334759.html 阅读目录(Content)
[OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解
对React、Redux、React-Redux详细剖析
Redux
Redux核心api
Reducer
Store
数据流
引言
回到顶部(go to top)
先上官方文档,推荐阅读英文原版文档,是最新、最全、最官方的文档。
redux:
英文原版 https://redux.js.org/ 中文 https://www.redux.org.cn/
英文原版 https://react-redux.js.org/ 中文 https://hardocs.com/d/redux/react-redux/
React:负责组件的UI界面渲染; Redux:数据处理中心; React-Redux:连接组件和数据中心,也就是把React和Redux联系起来。
React
React-Redux
要注意的是,Redux 和 React-redux 并不是同一个东西。Redux 是一种架构模式(Flux 架构的一种变种),它不关注你到底用什么库,你可以把它应用到 React 和 Vue,甚至跟 jQuery 结合都没有问题。而 React-redux 就是把 Redux 这种架构模式和 React.js 结合起来的一个库,就是 Redux 架构在 React.js 中的体现。
Redux是一种架构模式,是由flux发展而来的。
Redux主要由三部分组成:store,reducer,action。
Redux的核心是store,它由Redux提供的 createStore(reducer, defaultState) 这个方法生成,生成三个方法,getState(),dispatch(),subscrible()。
reducer是一个纯函数,它根据previousState和action计算出新的state。 reducer(previousState,action)
action本质上是一个JavaScript对象,其中必须包含一个type字段来表示将要执行的动作,其他的字段都可以根据需求来自定义。
const ADD_TODO = 'ADD_TODO' 复制代码 { type: ADD_TODO, text: 'Build my first Redux app' }
他们三者之间的交互,可以由下图概括:
Redux 本身和React没有关系,只是数据处理中心,是React-Redux让他们联系在一起。
React-rRedux提供两个方法:connect和Provider。
connect连接React组件和Redux store。connect实际上是一个高阶函数,返回一个新的已与 Redux store 连接的组件类。
const VisibleTodoList = connect( mapStateToProps, mapDispatchToProps )(TodoList)
TodoList是 UI 组件,VisibleTodoList就是由 react-redux 通过connect方法自动生成的容器组件。
mapStateToProps
mapDispatchToProps
Provider实现store的全局访问,将store传给每个组件。
原理:使用React的context,context可以实现跨组件之间的传递。
下图阐述了它们三者之间的工作流程:
下载示例跟着博文一起学习Redux
//先git clone https://github.com/reduxjs/redux.git //cd examples/todos //npm i //npm start
https://www.cnblogs.com/landv/p/13334759.html 阅读目录(Content)
[OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解
对React、Redux、React-Redux详细剖析
Redux
Redux核心api
Redux
Reducer
Store
数据流
引言
回到顶部(go to top)
[OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Redux&react-redux状态管理详解
先上官方文档,推荐阅读英文原版文档,是最新、最全、最官方的文档。
redux:
英文原版 https://redux.js.org/ 中文 https://www.redux.org.cn/
英文原版 https://react-redux.js.org/ 中文 https://hardocs.com/d/redux/react-redux/
要注意的是,Redux 和 React-redux 并不是同一个东西。Redux 是一种架构模式(Flux 架构的一种变种),它不关注你到底用什么库,你可以把它应用到 React 和 Vue,甚至跟 jQuery 结合都没有问题。而 React-redux 就是把 Redux 这种架构模式和 React.js 结合起来的一个库,就是 Redux 架构在 React.js 中的体现。
回到顶部(go to top)
对React、Redux、React-Redux详细剖析
Redux
Redux是一种架构模式,是由flux发展而来的。
Redux三大原则
Redux核心api
Redux主要由三部分组成:store,reducer,action。
store
Redux的核心是store,它由Redux提供的 createStore(reducer, defaultState) 这个方法生成,生成三个方法,getState(),dispatch(),subscrible()。
reducer
reducer是一个纯函数,它根据previousState和action计算出新的state。 reducer(previousState,action)
action
action本质上是一个JavaScript对象,其中必须包含一个type字段来表示将要执行的动作,其他的字段都可以根据需求来自定义。
整合
他们三者之间的交互,可以由下图概括:
React-Redux
Redux 本身和React没有关系,只是数据处理中心,是React-Redux让他们联系在一起。
React-rRedux提供两个方法:connect和Provider。
connect
connect连接React组件和Redux store。connect实际上是一个高阶函数,返回一个新的已与 Redux store 连接的组件类。
TodoList是 UI 组件,VisibleTodoList就是由 react-redux 通过connect方法自动生成的容器组件。
mapStateToProps
:从Redux状态树中提取需要的部分作为props传递给当前的组件。mapDispatchToProps
:将需要绑定的响应事件(action)作为props传递到组件上。Provider
Provider实现store的全局访问,将store传给每个组件。
原理:使用React的context,context可以实现跨组件之间的传递。
总结
下图阐述了它们三者之间的工作流程:
回到顶部(go to top)
Redux
下载示例跟着博文一起学习Redux