トレードオフ、Refパターン、デフォルト値
controlledとuncontrolledのinputを比較し、読み取りにはrefsを使い、妥当なデフォルト値を用意します。
「トレードオフ、Refパターン、デフォルト値」はCoddyKit上の無料React Academyレッスンです。 これはレッスン1/2です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全2レッスンが含まれています。
制御コンポーネントと非制御コンポーネント
目標:適切な入力スタイルを選びます。
- 制御コンポーネント:valueをstateに保持し、変更時に再レンダリングします
- 非制御コンポーネント:DOMがvalueを保持し、必要なときにrefで読み取ります
- デフォルト値:defaultValue、defaultChecked
トレードオフの概要
- 制御コンポーネント:リアルタイムの検証、マスク、他のフィールドとの同期に適しています
- 非制御コンポーネント:再レンダリングが少なく、送信時だけ処理する単純なフォームに適しています
- 組み合わせ:重要なフィールドは制御し、任意のフィールドは非制御にします
デモ:制御入力
制御フィールドはvalueをstateに保持し、変更のたびに更新します。
<div id="root"></div>
デモ:refを使った非制御入力
非制御フィールドはDOMのvalueを使用し、必要なときにrefで読み取ります。
<div id="root"></div>
デフォルト値と制御するタイミング
非制御フィールドの初期値にはdefaultValue/defaultCheckedを使用し、リアルタイムのルールが必要になったら制御コンポーネントに切り替えます。
<div id="root"></div>
ヒントと注意点
- 同じinputでvalueとdefaultValueを併用しないでください
- 非制御のvalueを読み取るにはrefsを使用します
- 1文字入力するたびにUIが反応する場合は、制御コンポーネントを選びます
制御と非制御の確認
振り返り
振り返り:リアルタイムのルールや派生stateには制御コンポーネントを、送信時だけ読み取る単純なフォームには非制御コンポーネントを使います。valueの読み取りにはrefを、初期値にはdefaultValueを使用します。
よくある質問
「トレードオフ、Refパターン、デフォルト値」レッスンは無料ですか?
はい。「トレードオフ、Refパターン、デフォルト値」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全2レッスンが含まれています。
「トレードオフ、Refパターン、デフォルト値」で何を学びますか?
controlledとuncontrolledのinputを比較し、読み取りにはrefsを使い、妥当なデフォルト値を用意します。 ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
React Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/2です。
「トレードオフ、Refパターン、デフォルト値」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このReact Academyレッスンでコードを書いて実行できますか?
はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- トレードオフ、Refパターン、デフォルト値
- Prop GetterとState Reducer(軽量版)