📅  最后修改于: 2023-12-03 15:19:47.816000             🧑  作者: Mango
Redux 是一个用于 JavaScript 应用程序的状态容器,它可以帮助开发人员更好地管理应用程序的状态。在 Redux 中,数据遵循单向数据流的原则。
单向数据流意味着应用程序中的所有数据都遵循一个方向,从父组件流向子组件,而不是从子组件流向父组件。 在 Redux 中,我们可以使用 store
存储数据,并通过 actions
更新数据。
下面是示例代码:
// 定义 actions
const ADD_TODO = 'ADD_TODO';
const TOGGLE_TODO = 'TOGGLE_TODO';
// action creators
function addTodo (id, text) {
return {
type: ADD_TODO,
id,
text,
};
}
function toggleTodo (id) {
return {
type: TOGGLE_TODO,
id,
};
}
// 定义 reducer
function todos (state = [], action) {
switch (action.type) {
case ADD_TODO:
return [
...state,
{
id: action.id,
text: action.text,
completed: false,
},
];
case TOGGLE_TODO:
return state.map(todo =>
todo.id === action.id
? { ...todo, completed: !todo.completed }
: todo
);
default:
return state;
}
}
// 创建 store
import { createStore } from 'redux';
const store = createStore(todos);
// 更新 state
store.dispatch(addTodo(0, '学习 Redux'));
// 获取 state
const currentState = store.getState();
console.log(currentState);
// 输出:[{ id: 0, text: '学习 Redux', completed: false }]
在上述代码中,我们可以看到 Redux 的单向数据流原则。store
存储了整个应用程序的状态。使用 dispatch
方法发送 actions
,并在 reducer
中更新 state
。我们可以使用 getState
方法获取当前状态。这种数据流非常清晰和易于调试。
总之,Redux 使用单向数据流来使得应用更加可控和可预测。这个原则可以让我们更好地管理应用程序的状态。