<Form>
fetch
を介してアクションにデータを送信する、漸進的に強化された HTML <form>
です。useNavigation
で保留状態をアクティブ化し、基本的な HTML フォームを超えた高度なユーザーインターフェースを可能にします。フォームのアクションが完了すると、ページ上のすべてのデータはサーバーから自動的に再検証され、UI とデータが同期した状態になります。
HTML フォーム API を使用しているため、サーバーでレンダリングされたページは、JavaScript がロードされる前に基本レベルでインタラクティブになります。Remix が送信を管理するのではなく、ブラウザーが送信と保留状態(スピニングファビコンなど)を管理します。JavaScript がロードされると、Remix が引き継ぎ、ウェブアプリケーションのユーザーエクスペリエンスを実現します。
Form は、URL を変更したり、ブラウザの履歴スタックにエントリを追加したりする必要がある送信に最も役立ちます。ブラウザの履歴スタックを操作しないフォームの場合、<fetcher.Form>
を使用してください。
Props
action
フォームデータを送信する URL。
undefined
の場合、これはコンテキスト内の最も近いルートにデフォルト設定されます。親ルートが <Form>
をレンダリングしますが、URL がより深い子ルートと一致する場合、フォームは親ルートに投稿されます。同様に、子ルート内のフォームは子ルートに投稿されます。これは、ネイティブの <form>
が常に完全な URL を指すこととは異なります。