📅  最后修改于: 2023-12-03 15:04:52.807000             🧑  作者: Mango
这是一个使用 Redux 和 React 实现的示例应用。Redux 是一个可预测的状态容器,用于管理应用中的状态和数据流。React 是一个用于构建用户界面的 JavaScript 库。
在这个示例中,我们将展示一个简单的待办事项列表应用。用户可以添加新的待办事项,完成已有的事项,并查看待办事项的列表。
actions/
目录:包含所有的 Redux 动作(Actions)定义和创建函数reducers/
目录:包含所有的 Redux 状态(Reducers)定义和处理函数store.js
:创建 Redux 的 store 实例,并将 reducers 注入到 store 中components/
目录:包含所有的 React 组件App.js
:应用的主组件,负责渲染整个应用的布局和逻辑styles.css
:应用的样式文件首先,确保您的机器上已安装了 Node.js 环境。
git clone https://github.com/example/redux-react-example.git
cd redux-react-example
npm install
npm start
// src/actions/todo.js
// 创建添加待办事项的动作
export const addTodo = (text) => ({
type: 'ADD_TODO',
payload: {
id: Date.now(),
text,
completed: false,
},
});
// 创建完成待办事项的动作
export const completeTodo = (id) => ({
type: 'COMPLETE_TODO',
payload: id,
});
// src/reducers/todo.js
// 处理添加待办事项的动作
export const todoReducer = (state = [], action) => {
switch (action.type) {
case 'ADD_TODO':
return [...state, action.payload];
case 'COMPLETE_TODO':
return state.map(todo => {
if (todo.id === action.payload) {
return { ...todo, completed: true };
}
return todo;
});
default:
return state;
}
};
// src/components/TodoList.js
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { completeTodo } from '../actions/todo';
const TodoList = () => {
const todos = useSelector(state => state.todos);
const dispatch = useDispatch();
const handleComplete = (id) => {
dispatch(completeTodo(id));
};
return (
<ul>
{todos.map(todo => (
<li key={todo.id}>
<span className={todo.completed ? 'completed' : ''}>{todo.text}</span>
<button onClick={() => handleComplete(todo.id)}>完成</button>
</li>
))}
</ul>
);
};
export default TodoList;
通过这个示例,我们可以学习如何使用 Redux 和 React 来构建一个简单的待办事项列表应用。同时,我们也了解了 Redux 的基本概念和用法,以及 Redux 和 React 的集成方式。
希望这个示例对你理解和学习 Redux-React 相关知识有所帮助!