Reactで制御されたコンポーネントを作成するには、DOMにそれを管理させるのではなく、コンポーネントの状態を介して、フォーム要素の状態(入力フィールド、ドロップダウン、テキスト領域など)を管理することが含まれます。制御されたコンポーネントの作成方法に関する段階的なガイドを次に示します。
状態の設定:最初に、フォーム要素の値を保持するために、Reactコンポーネントに状態を設定する必要があります。これは、機能コンポーネントのuseState
フックまたはクラスコンポーネントのthis.state
オブジェクトを使用して実行できます。
<code class="javascript">const [inputValue, setInputValue] = useState('');</code>
状態を値に結合します:次に、状態をフォーム要素のvalue
属性にバインドします。入力フィールドの場合、これは次のように見えるかもしれません。
<code class="jsx"><input type="text" value="{inputValue}" onchange="{handleChange}"></code>
変更の処理:フォーム要素の変更を処理する関数を作成する必要があります。この関数は、ユーザーがフォーム要素と対話するたびに状態を更新します。
<code class="javascript">const handleChange = (event) => { setInputValue(event.target.value); };</code>
これらの手順に従うことにより、Reactがフォームの状態を担当する制御されたコンポーネントを効果的に作成し、フォーム要素の更新はReactの状態管理を通過する必要があります。
Reactの制御コンポーネントは、開発とユーザーエクスペリエンスを向上させるいくつかの利点を提供します。
Reactの制御されたコンポーネントを使用したフォーム検証の取り扱いには、状態を使用してフォーム要素の有効性を追跡することが含まれます。これがあなたがそれを行う方法です:
検証ロジック:フォーム入力の妥当性を確認する関数を書き込みます。これらは、必要なフィールドの単純なチェック、または電子メール形式、パスワード強度などなどのより複雑な検証です。
<code class="javascript">const validateEmail = (email) => { const re = /^[a-zA-Z0-9._-] @[a-zA-Z0-9.-] \.[a-zA-Z]{2,4}$/; return re.test(String(email).toLowerCase()); };</code>
検証のための状態:状態変数を追加して、フィールドが有効かどうかを追跡し、エラーメッセージを保持する場合があります。
<code class="javascript">const [email, setEmail] = useState(''); const [emailError, setEmailError] = useState('');</code>
変更に関する検証を更新する: handleChange
関数内で、検証関数を呼び出し、それに応じて検証状態を更新します。
<code class="javascript">const handleEmailChange = (event) => { const newEmail = event.target.value; setEmail(newEmail); if (!validateEmail(newEmail)) { setEmailError('Please enter a valid email address'); } else { setEmailError(''); } };</code>
検証フィードバックを表示:検証状態を使用して、エラーメッセージまたは成功指標をリアルタイムでユーザーに表示します。
<code class="jsx"><input type="email" value="{email}" onchange="{handleEmailChange}"> {emailError && <div style="{{color:">{emailError}</div>}</code>
フォームの提出:フォームが送信されたら、検証状態を確認して、提出を続行するか、エラーを表示するかを決定できます。
<code class="javascript">const handleSubmit = (event) => { event.preventDefault(); if (!emailError) { // Proceed with form submission } else { // Handle form submission errors } };</code>
このアプローチを使用すると、検証がリアルタイムで発生するシームレスなユーザーエクスペリエンスを作成し、ユーザーが進むにつれてエラーを修正するのに役立ちます。
Reactの制御されたコンポーネントと制御されていないコンポーネントの主な違いは、フォームデータの管理と処理方法にあります。
国家管理:
データフロー:
予測可能性と制御:
使用例:
要約すると、制御されたコンポーネントはより多くの制御を提供し、複雑なフォームの相互作用に適していますが、制御されていないコンポーネントはよりシンプルで基本的なユースケースにより適しています。
以上がReactで制御されたコンポーネントをどのように作成しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。