React では、state は、コンポーネントのレンダリングと動作に影響を与える動的データを保持するオブジェクトを指します。状態は、時間の経過とともに変化する可能性のある情報を保存することにより、コンポーネントを対話型にすることができます。状態が変化すると、React はコンポーネントを自動的に再レンダリングして新しい状態を反映します。
このガイドでは、React 状態の基礎、それを効果的に使用する方法、およびそれが動的 UI の管理にどのように役立つかについて説明します。
React の State は、コンポーネントのライフサイクルを通じて変化する可能性のあるデータまたは情報を保存する組み込みオブジェクトです。親コンポーネントから子コンポーネントに渡される props とは異なり、state はコンポーネント自体内で管理され、ユーザーのアクションやその他のイベントに応じて動的に変更できます。
たとえば、状態にはユーザー入力、フォーム データ、またはトグル ボタンの現在のステータスを保存できます。
機能コンポーネントでは、通常、状態は useState フックを使用して管理されます。 useState フックを使用すると、状態変数を宣言し、それらを更新する関数を提供できます。
const [state, setState] = useState(initialValue);
import React, { useState } from 'react'; const Counter = () => { // Declare state variable "count" with initial value of 0 const [count, setCount] = useState(0); // Increment the count when the button is clicked const increment = () => setCount(count + 1); return ( <div> <p>Count: {count}</p> <button onClick={increment}>Increment</button> </div> ); }; export default Counter;
クラス コンポーネントでは、this.state を使用してコンストラクター内で状態が宣言され、this.setState() を使用して更新が行われます。
const [state, setState] = useState(initialValue);
React の状態は、setter 関数 (関数コンポーネントの場合は setState、クラス コンポーネントの場合は this.setState) を通じて更新されます。状態が更新されると、React はコンポーネントを再レンダリングして新しい状態を反映します。
#### 例 (機能コンポーネント):
import React, { useState } from 'react'; const Counter = () => { // Declare state variable "count" with initial value of 0 const [count, setCount] = useState(0); // Increment the count when the button is clicked const increment = () => setCount(count + 1); return ( <div> <p>Count: {count}</p> <button onClick={increment}>Increment</button> </div> ); }; export default Counter;
#### 機能アップデートによる修正:
import React, { Component } from 'react'; class Counter extends Component { constructor(props) { super(props); // Declare state in the constructor this.state = { count: 0 }; } // Method to increment the count increment = () => { this.setState({ count: this.state.count + 1 }); }; render() { return ( <div> <p>Count: {this.state.count}</p> <button onClick={this.increment}>Increment</button> </div> ); } } export default Counter;
React を使用すると、単一コンポーネントで複数の状態変数を使用できるため、よりモジュール化され、複雑な状態を管理しやすくなります。
const [count, setCount] = useState(0); const increment = () => { setCount(count + 1); console.log(count); // This will log the old value, not the updated one };
React では、2 つ以上のコンポーネントが同じ状態を共有する必要がある場合、その状態を共通の祖先まで「リフトアップ」します。その後、共通の祖先は状態と状態更新関数を props として子コンポーネントに渡すことができます。
const [state, setState] = useState(initialValue);
状態は React の中核概念の 1 つであり、インタラクティブで動的な UI を作成するために不可欠です。関数コンポーネントで useState を使用し、クラス コンポーネントで this.state を使用する方法を理解することで、アプリ内の動的データを効果的に管理できます。複雑さを軽減し、最適なパフォーマンスを確保するには、状態をリフトアップしたり、状態をローカルに維持したりするなどのベスト プラクティスに必ず従うようにしてください。
以上がReact State の包括的なガイド: コンポーネント内の動的データの管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。