要使用react-redux
库中的connect()
函数将React组件连接到Redux Store,请按照以下步骤操作:
导入connect
:首先,您需要从react-redux
导入connect
函数:
<code class="javascript">import { connect } from 'react-redux';</code>
定义mapStateToProps
和mapDispatchToProps
:这些功能是可选的,但通常使用。 mapStateToProps
采用商店的状态,并为您的组件返回道具的对象。 mapDispatchToProps
采用dispatch
函数,并返回一个动作创建者dispatch
的对象。
<code class="javascript">const mapStateToProps = (state) => { return { // Example props todos: state.todos, }; }; const mapDispatchToProps = (dispatch) => { return { // Example action addTodo: (text) => dispatch(addTodo(text)), }; };</code>
使用connect
来包装组件:使用connect
将组件包装,将mapStateToProps
和mapDispatchToProps
作为其参数。这创建了连接到Redux Store的新组件。
<code class="javascript">const ConnectedComponent = connect( mapStateToProps, mapDispatchToProps )(YourComponent);</code>
导出连接的组件:最后,您可以导出此新的连接组件以在应用程序的其他部分中使用。
<code class="javascript">export default ConnectedComponent;</code>
通过遵循以下步骤,您的React组件将能够从Redux Store接收数据并将操作分配给商店,从而使Redux应用程序中的单向数据流构成典型的单向数据流。
使用connect()
将React组件与Redux Store链接可提供几个关键好处:
connect()
,您可以声明地指定组件从商店中需要的数据,从而简化了整个应用程序管理状态的过程。connect()
在引擎盖下实施了shouldComponentUpdate
,这可以通过防止状态变化时不必要的重新订阅来帮助优化应用程序的性能,但相关的道具却没有。connect()
简化了状态如何通过组件传递,减少道具钻探并使管理复杂的状态交互更容易。connect()
连接的组件更容易测试,因为您可以通过预定义的状态和操作模拟Redux存储并隔离组件。 mapStateToProps
和mapDispatchToProps
是connect()
功能中的关键功能,可用于特定目的:
MAPSTATETOPROPS :此功能将整个Redux Store状态作为其第一个参数并返回对象。该对象中的键变成传递给组件的道具。本质上,它将Redux状态的一部分映射到组件的道具,从而使您的组件可以订阅状态更改。例如:
<code class="javascript">const mapStateToProps = (state) => { return { todos: state.todos, }; };</code>
在此示例中,每当Redux Store中的状态更改时, mapStateToProps
运行,如果todos
状态已更改,它将将此新的todos
数据传递给连接的组件。
MapDisPatchToprops :此功能将dispatch
函数从Redux存储中获取作为参数,并以动作创建者为值返回对象。这些动作创建者在称为Redux Store时,将动作调用。物体的键成为组件的道具。例如:
<code class="javascript">const mapDispatchToProps = (dispatch) => { return { addTodo: (text) => dispatch(addTodo(text)), }; };</code>
在这里, addTodo
成为有关连接组件的道具,可以称为this.props.addTodo(text)
组件中的组件,将addTodo
操作派遣到商店中。
将connect()
与redux一起以正面和负面方式影响反应应用的性能:
积极影响:
connect()
函数会自动实现shouldComponentUpdate
。这意味着仅当状态的相关部分(由mapStateToProps
确定)实际上发生了变化时,连接的组件仅重新渲染,从而通过减少不必要的重新呈现来改善性能。connect()
Redux可以简化通过应用程序的数据流,从而减少了深层通过组件树的道具的需求,从而可能提高了组件渲染效率。潜在的负面影响:
mapStateToProps
功能得到了优化,并且不会无意间触发重新租赁者会变得具有挑战性,如果无法正确处理,则可能会影响性能。为了减轻这些影响,开发人员可以使用诸如mapStateToProps
reselect
回忆之类的技术,也可以考虑使用React.memo
进行连接的组件来进一步控制基于Prop更改的重新呈现。此外,仔细设计状态结构和商店的使用可以帮助在较大的应用程序中有效地管理性能。
以上是如何使用Connect()将React组件连接到Redux Store?的详细内容。更多信息请关注PHP中文网其他相关文章!