中文api:http://cn.redux.js.org/docs/react-redux/troubleshooting.html
3.6 Reducer
Store 收到 Action 以后,必须给出一个新的 State,这样 View 才会发生变化。这种 State 的计算过程就叫做 Reducer。
Reducer 是一个函数,它接受 Action 和当前 State 作为参数,返回一个新的 State。
3.3 Action
State 的变化,会导致 View 的变化。但是,用户接触不到 State,只能接触到 View。所以,State 的变化必须是 View 导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了。
Redux 的设计思想很简单,就两句话。
(1)Web 应用是一个状态机,视图与状态是一一对应的。
(2)所有的状态,保存在一个对象里面。
3.1 Store
Store 就是保存数据的地方,你可以把它看成一个容器。整个应用只能有一个 Store。
Redux 提供createStore这个函数,用来生成 Store。
3.2 State
Store对象包含所有数据。如果想得到某个时点的数据,就要对 Store 生成快照。这种时点的数据集合,就叫做 State。
当前时刻的 State,可以通过store.getState()拿到。
总之,只要记住一句话就可以了:UI 组件负责 UI 的呈现,容器组件负责管理数据和逻辑。
你可能会问,如果一个组件既有 UI 又有业务逻辑,那怎么办?回答是,将它拆分成下面的结构:外面是一个容器组件,里面包了一个UI 组件。前者负责与外部的通信,将数据传给后者,由后者渲染出视图。
React-Redux 规定,所有的 UI 组件都由用户提供,容器组件则是由 React-Redux 自动生成。也就是说,用户负责视觉层,状态管理则是全部交给它。
connect
这个模块是算是真正意义上连接了Redux和React,正好它的名字也叫connect。
先考虑Redux是怎么运作的:首先store中维护了一个state,我们dispatch一个action,接下来reducer根据这个action更新state。
映射到我们的React应用中,store中维护的state就是我们的app state,一个React组件作为View层,做两件事:render和响应用户操作。于是connect就是将store中的必要数据作为props传递给React组件来render,并包装action creator用于在响应用户操作时dispatch一个action。
好了,详细看看connect这个模块做了什么。先从它的使用来说,它的API如下:
文/leozdgao
redux学习笔记
转载上一篇:react中的坑
下一篇:如何理解 Redux?
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HarmonyOS NEXT 学习笔记
鸿蒙os 页面一键置灰
页面效果 API -
Redux Toolkit(RTK) 学习笔记
redux-toolkit
中间件 字符串 异步操作 -
redux-form V.7.4.2学习笔记--Field解析(完)
本文将对redux-form V.7.4.2 <Field/> API进入深度解析
React Redux redux-form -
redux-form的学习笔记
redux是一种常用的与react框架搭配的一种数据流架构,而伴随着redux的出现,也出现了许多基于red
表单 ide form表单 github 运行环境 -
全局状态管理工具——Redux 学习笔记
Redux 是 JavaScript 状态容器,提供可预测化的状态管理 ...
React js对象 状态机 web应用 javascript