📅  最后修改于: 2023-12-03 15:37:05.774000             🧑  作者: Mango
本备忘单涵盖了 Redux 中的基本概念和常用语法。它可以作为您在学习 Redux 时的参考。如果您已经熟悉 Redux,您可以跳过一些部分。
一个包含 type 属性的 JavaScript 对象。type 描述了这个动作的类型。Action 还可以包含其他的属性。
一个函数,接收当前的状态(state)和一个 action,返回新状态(new state)。
一个保存应用程序状态的地方。它包含了当前状态(current state),它的 reducer 和 middleware。
一个洋葱模型流水线。它包括了一些功能,可以在一个 action 调用 reducer 之前或之后执行。
一个函数,接收一个 action 并将它传递给 reducer 和 middleware。
一个函数或对象,用于监听 store 的变化。
您可以使用以下命令在项目中安装 Redux:
$ npm install --save redux
或者,您可以使用以下命令在项目中安装 React-Redux:
$ npm install --save react-redux
您可以使用 createStore
方法创建一个 store:
import { createStore } from 'redux';
const reducer = (state = {}, action) => {
switch (action.type) {
case 'SOME_ACTION':
return { ...state, data: action.payload };
default:
return state;
}
}
const store = createStore(reducer);
您可以使用 store.dispatch
方法将 action 分发给 reducer:
store.dispatch({
type: 'SOME_ACTION',
payload: 'Hello, World!'
});
您可以使用 store.getState()
方法获取当前的状态:
const state = store.getState();
您可以使用 store.subscribe
方法监听状态的变化:
store.subscribe(() => {
console.log(store.getState());
});
您可以使用 applyMiddleware
方法来应用 middleware:
import { applyMiddleware, createStore } from 'redux';
const logger = store => next => action => {
console.log('dispatching', action);
const result = next(action);
console.log('next state', store.getState());
return result;
}
const store = createStore(reducer, applyMiddleware(logger));
您可以使用提供器(Provider)来将 store 提供给您的 React 应用程序。您可以使用容器(Container)来包装组件并将 state 或 action 作为属性传递给它们。
import { Provider, connect } from 'react-redux';
import { createStore } from 'redux';
const reducer = (state = {}, action) => {
switch (action.type) {
case 'SOME_ACTION':
return { ...state, data: action.payload };
default:
return state;
}
}
const store = createStore(reducer);
const MyComponent = ({ data }) => {
return <div>{data}</div>;
};
const MyContainer = connect(
state => ({ data: state.data })
)(MyComponent);
const App = () => {
return (
<Provider store={store}>
<MyContainer />
</Provider>
);
};
Redux 是一个非常强大的状态管理工具。它可以帮助您更好地组织和管理您的应用程序状态。如果您还不熟悉 Redux,那么理解这些概念和语法是非常重要的。