1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| Redux 主要由以下几个核心组件组成,它们协同工作,帮助管理和更新应用的状态。 以下是 Redux 的几个重要组件:
1.重要组件 1.1 Store(存储) -Store 是 Redux 中保存应用状态的地方。它是一个对象,包含了应用的所有状 -通过 store,可以获取当前的应用状态、注册监听器以及派发(dispatch)action 来更新状态。
API: -store.getState():返回应用当前的状态。 -store.dispatch(action):用于发送 action,触发状态更新。 -store.subscribe(listener):注册一个监听器,监听状态变化。
1.2 Action(动作) -Action 是一个普通的JavaScript对象,描述了发生了什么事情,并传递了状态变化所需的必要信息。 -每个action 都有一个type属性,用于标识 action 的类型, 此外,action 还可以包含其他数据(payload),这些数据是更新状态所需的信息。
const action = { type: 'ADD_ITEM', payload: { item: 'Apple' } };
1.3 Reducer(简化函数) -Reducer 是一个纯函数,用来描述如何根据 action 更新 state。 它接收当前的 state 和 action,并返回一个新的 state。 -Reducer 不会直接修改 state,而是返回一个新的状态对象。
const initialState = { items: [] }; const itemsReducer = (state = initialState, action) => { switch (action.type) { case 'ADD_ITEM': return { ...state, items: [...state.items, action.payload.item] }; default: return state; } };
1.4 Dispatch(派发)
Dispatch 是用于发送 action 的方法。 通过 dispatch,action 会被发送到 Redux store,触发相应的 reducer 更新状态。 store.dispatch({ type: 'ADD_ITEM', payload: { item: 'Apple' } });
1.5 Subscribe(订阅) Subscribe 用于监听 state 的变化。 每当 Redux 中的状态发生变化时,已订阅的监听器会被触发。
store.subscribe(() => { console.log(store.getState()); });
2.总结:Redux 中的核心组件包括: -Store:保存应用状态,提供获取、更新状态的功能。 -Action:描述应用中发生的事情,是一个普通的 JavaScript 对象。 -Reducer:是一个纯函数,根据 action 返回新的状态。 -Dispatch:用来派发 action,触发状态更新。 -Subscribe:监听 state 变化,当状态改变时触发回调函数。
这些组件协同工作,确保应用状态的统一管理和更新
|