推荐答案
Redux 的核心概念包括以下几个部分:
- Store:存储整个应用的状态树。整个应用只能有一个 Store。
- Action:描述发生了什么的对象,是改变 State 的唯一途径。
- Reducer:纯函数,接收旧的 State 和 Action,返回新的 State。
- Dispatch:触发 Action 的方法,是唯一可以改变 State 的方式。
- Subscribe:监听 State 变化的方法,用于更新 UI。
本题详细解读
Store
Store 是 Redux 的核心,它保存了整个应用的状态树。Redux 应用只有一个单一的 Store,通过 createStore 函数创建。Store 提供了以下几个方法:
getState():获取当前 State。dispatch(action):触发 Action,更新 State。subscribe(listener):注册监听器,当 State 发生变化时调用。
Action
Action 是一个普通的 JavaScript 对象,用来描述发生了什么。Action 必须包含一个 type 属性,表示 Action 的类型。其他属性可以自由定义,通常用来传递数据。
const action = {
type: 'ADD_TODO',
payload: 'Learn Redux'
};Reducer
Reducer 是一个纯函数,接收旧的 State 和 Action,返回新的 State。Reducer 必须保持纯净,不能有副作用,不能直接修改 State,而是返回一个新的 State。
function todoReducer(state = [], action) {
switch (action.type) {
case 'ADD_TODO':
return [...state, action.payload];
default:
return state;
}
}Dispatch
dispatch 是 Store 提供的一个方法,用来触发 Action。它是唯一可以改变 State 的方式。
store.dispatch({
type: 'ADD_TODO',
payload: 'Learn Redux'
});Subscribe
subscribe 是 Store 提供的一个方法,用来注册监听器。当 State 发生变化时,监听器会被调用。
store.subscribe(() => {
console.log('State changed:', store.getState());
});通过这些核心概念,Redux 实现了单向数据流,使得状态管理更加可预测和易于调试。