0Pricing
Sveltejs Academy · レッスン

use:enhanceディレクティブ

クライアント側のfetchを使ってフォーム送信を段階的に拡張し、ページ全体の再読み込みを避けます。

「use:enhanceディレクティブ」はCoddyKit上の無料Sveltejs Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSveltejs Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Sveltejs Academyコースには全4レッスンが含まれています。

プログレッシブエンハンスメント

フォームはJavaScriptなしでも動作します。use:enhanceを使うと、fetchベースの送信に拡張され、快適なUXを実現できます。

enhanceのインポート

$app/formsからインポートします。

import { enhance } from "$app/forms";

フォームへの適用

フォーム要素でuse:ディレクティブを使用します。

<form method="POST" use:enhance>...</form>

リロードなし

ページはリロードされません。SvelteKitがfetchで送信し、アクションを処理して、ページをリアクティブに更新します。

カスタムハンドラー

enhanceにコールバックを渡すと、送信を細かく制御できます。

<form use:enhance={({ formData }) => {
  return ({ result }) => { /* custom handling */ };
}}>

デフォルトの動作

コールバックを指定しない場合、enhanceは通常のページ送信と同じようにリダイレクトやデータの再取得を行います。

読み込み状態

スピナーを表示するには、コールバック内のローカル変数で送信状態を追跡します。

エラーからの復旧

アクションが返したエラーは、ページのformプロパティに反映されます。

楽観的UI

サーバーからの応答を待つ前にコールバック内でローカル状態を更新し、すぐにフィードバックを表示します。

複数のフォーム

各フォームで独自のenhanceの動作を設定できます。グローバル状態は必要ありません。

重要な理由

1つのディレクティブで、HTMLフォームの堅牢性とSPAの滑らかな操作性を両立できます。

クイックチェック

use:enhanceは何をしますか?

復習

use:enhanceはネイティブフォームをクライアント側の送信に拡張します。コールバックでカスタマイズできます。

よくある質問

「use:enhanceディレクティブ」レッスンは無料ですか?

はい。「use:enhanceディレクティブ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Sveltejs Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Sveltejs Academyコースには全4レッスンが含まれています。

「use:enhanceディレクティブ」で何を学びますか?

クライアント側のfetchを使ってフォーム送信を段階的に拡張し、ページ全体の再読み込みを避けます。 ブラウザで直接実行するハンズオンコードでSveltejs Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Sveltejs Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSveltejs Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「use:enhanceディレクティブ」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSveltejs Academyレッスンでコードを書いて実行できますか?

はい。すべてのSveltejs Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. アクション付きの+page.server.js
  2. use:enhanceディレクティブ
  3. フォームのProgressive Enhancement
  4. アクションでの検証エラー処理
← Sveltejs Academyに戻る