Redux Counter是Redux的官方教程中的一个示例,展示了如何使用Redux来管理一个计数器的状态。以下是对Redux Counter应用的介绍。
首先,我们需要创建一个React组件来展示计数器的值和增加/减少按钮。在这个组件中,我们使用connect()函数将组件与Redux store连接起来,以便在组件中获取state和dispatch actions。我们还将增加和减少按钮的点击事件绑定到相应的actions上。这个组件的实现代码如下:
import React from 'react'; import { connect } from 'react-redux'; import { increment, decrement } from './actions/counter';
function Counter({ count, onIncrement, onDecrement }) { return ( <div> <div>Count: {count}</div> <button onClick={onIncrement}>Increment</button> <button onClick={onDecrement}>Decrement</button> </div> ); }
const mapStateToProps = state => ({ count: state }); const mapDispatchToProps = dispatch => ({ onIncrement: () => dispatch(increment()), onDecrement: () => dispatch(decrement()) }); export default connect(mapStateToProps, mapDispatchToProps)(Counter);
在上述代码中,Counter组件是一个React组件,它通过connect()函数与Redux store连接起来。mapStateToProps函数将store的state映射到组件的props中,以便在组件中获取计数器的当前值。mapDispatchToProps函数将dispatch映射到组件的props中,以便在组件中调用increment()和decrement()actions来增加和减少计数器的值。最后,我们将这两个函数传递给connect()函数,并将结果作为props传递给Counter组件。
除了Counter组件之外,还需要创建一个包含计数器初始状态的Redux store。这个store的实现代码如下:
import { createStore } from 'redux'; import counter from './reducers/counter';
const store = createStore(counter);