Redux是一个用于JavaScript应用程序的可预测状态容器,它可以帮助我们管理React应用的状态和事件分发。Redux的核心概念是store、action和reducer。
在使用Redux之前,我们需要先安装redux和react-redux这两个npm包。
npm install redux react-redux --save
在Redux中,store是用于存储应用程序状态的地方。我们可以通过创建一个store来管理应用程序的状态。
javascript import { createStore } from 'redux'; import rootReducer from './reducers'; // rootReducer是一个reducer组成的对象 const store = createStore(rootReducer);
action是一个纯JavaScript对象,用于描述发生了什么。它包含一个type属性和一些其他数据。
javascript const ADD_TODO = "ADD_TODO"; const addTodo = (text) => { return { type: ADD_TODO, text } }
reducer是一个纯函数,它接收先前的状态和一个action,并返回新的状态。reducer根据action的类型来确定如何更新状态。
javascript const initialState = []; const todoReducer = (state = initialState, action) => { switch (action.type) { case ADD_TODO: return [...state, { text: action.text }]; default: return state; } }
我们需要使用react-redux的Provider组件将store注入到React应用程序中。然后,我们可以使用connect函数将组件连接到store。
javascript import { Provider, connect } from 'react-redux'; const App = ({ todos }) => { return ({todos.map((todo, index) =>) } const mapStateToProps = (state) => { return { todos: state.todos } } const ConnectedApp = connect(mapStateToProps)(App); const Root = () => { return ({todo.text})}) }
在上面的示例中,我们使用了connect函数将App组件连接到store。mapStateToProps函数将store中的状态映射到组件的props中。