ユーザー入力の処理は、ほぼすべてのアプリケーションにとって基本であり、Web開発の世界では、HTMLフォームがこのタスクの標準ツールです。 あなたが反応するのが初めてなら、フォームを統合することは気が遠くなるように思えるかもしれません。この記事では、基本的なテクニックと高度なテクニックの両方をカバーする、Reactのフォームを使用するための明確で簡潔なガイドを提供します。
重要な概念
クラスコンポーネントの場合、はコンストラクターで使用されます。 簡単ですが、制御されていない入力には、制御された対応物の機能がありません。
例:ログインフォーム(制御されていない)function SimpleForm() { const nameEl = React.useRef(null); const handleSubmit = (e) => { e.preventDefault(); alert(nameEl.current.value); }; return ( <form onSubmit={handleSubmit}> <label htmlFor="name">Name:</label> <input type="text" ref={nameEl} id="name" /> <button type="submit">Submit</button> </form> ); }
リアルタイム検証または動的形式の動作が必要な場合、制御されていない入力の制限が明らかになります。
React.createRef()
制御された入力は、Reactコンポーネント内の状態を維持します。入力の変更状態を更新し、状態の変更は入力を更新します。 この循環データフローは、実装する力を提供します:
function LoginForm() { // ... (refs for username, password, rememberMe) ... const handleSubmit = (e) => { e.preventDefault(); const data = { username: nameEl.current.value, password: passwordEl.current.value, rememberMe: rememberMeEl.current.checked, }; // ... (submit data) ... }; return ( <form onSubmit={handleSubmit}> {/* ... (input fields) ... */} </form> ); }
入力の正確性に関する即時フィードバックを提供します。
入力フォーマット:フォーマット(たとえば、通貨、電話番号)を動的に適用します。
class ControlledInput extends React.Component { constructor(props) { super(props); this.state = { name: '' }; } handleInput = (event) => { this.setState({ name: event.target.value }); }; render() { return ( <input type="text" value={this.state.name} onChange={this.handleInput} /> ); } }
条件付きレンダリング:
入力値に基づいて要素を表示/非表示にします。function SimpleForm() { const nameEl = React.useRef(null); const handleSubmit = (e) => { e.preventDefault(); alert(nameEl.current.value); }; return ( <form onSubmit={handleSubmit}> <label htmlFor="name">Name:</label> <input type="text" ref={nameEl} id="name" /> <button type="submit">Submit</button> </form> ); }
これらのライブラリは、州の管理、検証、および提出を処理し、開発をより効率的にします。
結論
制御された入力と制御されていない入力を理解することは、反応で効果的なフォーム処理に不可欠です。 制御されていない入力は単純なシナリオに適していますが、制御された入力はほとんどのアプリケーションに必要な柔軟性とパワーを提供します。 フォームライブラリを使用して、複雑なフォームの開発を合理化することを検討してください。 明確なフィードバックとエラー処理を通じてユーザーエクスペリエンスに優先順位を付けることを忘れないでください。以上がReactのフォームを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。