react-redux
ライブラリのconnect()
関数を使用してReduxストアに反応コンポーネントを接続するには、次の手順に従います。
Import 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 connect
使用してコンポーネントをラップし、 mapStateToProps
とmapDispatchToProps
その引数として渡します。これにより、Reduxストアに接続されている新しいコンポーネントが作成されます。
<code class="javascript">const ConnectedComponent = connect( mapStateToProps, mapDispatchToProps )(YourComponent);</code>
接続されたコンポーネントをエクスポートする:最後に、この新しい接続されたコンポーネントをエクスポートして、アプリケーションの他の部分で使用できます。
<code class="javascript">export default ConnectedComponent;</code>
これらの手順に従うことにより、ReactコンポーネントはReduxストアからデータを受信し、ストアにアクションを発送することができ、Reduxアプリケーションで典型的な一方向のデータフローが可能になります。
connect()
を使用してReduxストアとReactコンポーネントをリンクします。いくつかの重要な利点が得られます。
connect()
を使用すると、コンポーネントがストアから必要とするデータを宣言的に指定し、アプリケーション全体で状態を管理するプロセスを簡素化できます。connect()
は、フードの下でshouldComponentUpdate
)を実装します。これは、状態が変更されたが関連する小道具がない場合に不必要な再レンダーを防ぐことにより、アプリケーションのパフォーマンスを最適化するのに役立ちます。connect()
状態がコンポーネントを通過する方法を簡素化し、小道具の掘削を減らし、複雑な状態相互作用を容易にします。connect()
に接続されたコンポーネントは、reduxストアをmock笑して、定義された状態とアクションでコンポーネントを単独でテストできるため、テストが簡単です。 mapStateToProps
とmapDispatchToProps
、特定の目的を果たすconnect()
関数内の重要な関数です。
MapStateToprops :この関数は、Reduxストア状態全体を最初の引数として取得し、オブジェクトを返します。このオブジェクトのキーは、コンポーネントに渡される小道具になります。基本的に、Redux状態の一部をコンポーネントの小道具にマッピングし、コンポーネントが状態の変更を購読できるようにします。例えば:
<code class="javascript">const mapStateToProps = (state) => { return { todos: state.todos, }; };</code>
この例では、Reduxストアの状態が変更されるたびに、 mapStateToProps
が実行され、 todos
州が変更された場合、この新しいtodos
データをプロップとして接続されたコンポーネントに渡します。
MapDispatchToprops :この関数は、Reduxストアからdispatch
関数をその引数として取得し、アクション作成者を持つオブジェクトを値として返します。これらのアクションクリエイターは、呼び出されると、アクションをReduxストアに派遣します。オブジェクトのキーは、コンポーネントの小道具になります。例えば:
<code class="javascript">const mapDispatchToProps = (dispatch) => { return { addTodo: (text) => dispatch(addTodo(text)), }; };</code>
ここで、 addTodo
接続されたコンポーネントの小道具になります。これは、コンポーネント内のthis.props.addTodo(text)
と呼ばれ、ストアにaddTodo
アクションを発送します。
Reduxでconnect()
を使用すると、正と否定的な方法でReactアプリケーションのパフォーマンスに影響を与える可能性があります。
プラスの影響:
connect()
関数を実装するshouldComponentUpdate
。つまり、接続されたコンポーネントは、州の関連部分( mapStateToProps
によって決定された)が実際に変更された場合にのみ再レンダリングし、不必要な再レンダーを減らすことでパフォーマンスを改善する可能性があります。connect()
を使用したReduxはアプリケーションを介したデータフローを簡素化し、コンポーネントツリーにプロップを深く渡す必要性を減らし、コンポーネントの効率を改善する可能性があります。潜在的なマイナスの影響:
mapStateToProps
機能が最適化され、再レンダーが不注意にトリガートリガーをトリガーしないことを保証し、正しく処理されないとパフォーマンスに影響を与える可能性があります。これらの影響を緩和するために、開発者はmapStateToProps
のreselect
メモ化などの手法を使用するか、ConnectedコンポーネントにReact.memo
を使用して、プロップの変更に基づいて再レンダーをさらに制御することを検討できます。さらに、州の構造の慎重な設計と店舗の使用は、より大きなアプリケーションでパフォーマンスを効果的に管理するのに役立ちます。
以上がconnect()を使用して、ReactコンポーネントをReduxストアにどのように接続しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。