You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reducer接受两个参数,一个是 state,一个是 action。
如果没有传入 state 或者 state 是 null,那么它就会返回一个初始化的数据。如果有传入 state 的话,就会根据 action 来“修改“数据,但其实它没有、也规定不能修改 state,而是要通过上节所说的把修改路径的对象都复制一遍,然后产生一个新的对象返回。如果它不能识别你的 action,它就不会产生新的数据,而是(在 default 内部)把 state 原封不动地返回。
手写redux
首先需要讲一些概念。
简介
在一个正常的 react app中需要 组件 也需要组件间交互的数据的store。在这个app中我们用provider 容器包裹 组件,用context 中包围store, 在组件间共享。每个组件都做纯组件化,不包含逻辑,只根据props 渲染。 这就是redux 的设计模式。
套路就是
组件
组件就不多说了,主要 Smart 组件 vs Dumb 组件。
Dumb 组件 不包含所有逻辑
Smart 组件包含逻辑和从context 中获取相应的数据
store
它接受的参数叫 reducer,reducer 是一个函数, 而且是纯函数(Pure Function)
reducer
reducer接受两个参数,一个是 state,一个是 action。
如果没有传入 state 或者 state 是 null,那么它就会返回一个初始化的数据。如果有传入 state 的话,就会根据 action 来“修改“数据,但其实它没有、也规定不能修改 state,而是要通过上节所说的把修改路径的对象都复制一遍,然后产生一个新的对象返回。如果它不能识别你的 action,它就不会产生新的数据,而是(在 default 内部)把 state 原封不动地返回。
Github
部分代码
react-redux.js
index.js
The text was updated successfully, but these errors were encountered: