React アプリを使用したヘッドレスフォームの作成とプレビュー introduction

スターターキットは、React アプリの使用をすぐに開始するのに役立ちます。Angular、Vanilla JS およびその他の任意の開発環境で、ヘッドレスアダプティブフォームを自由に開発および使用できます。

ヘッドレスアダプティブフォームから始めると、作業を簡単かつ迅速に行えます。既製の React プロジェクトのクローンを作成し、依存関係をインストールして、プロジェクトを実行します。 ヘッドレスアダプティブフォームが React アプリに統合され稼働状態になっています。サンプルの React プロジェクトを使用して、ヘッドレスアダプティブフォームを作成し、実稼動環境にデプロイする前にテストすることができます。

では、開始しましょう。

NOTE
この入門ガイドでは、React アプリを使用しています。任意のテクノロジーやプログラミング言語を自由に使用して、ヘッドレスアダプティブフォームを使用できます。

事前準備 pre-requisites

React アプリを作成して実行するには、コンピューターに次のものがインストールされている必要があります。

はじめに

要件を満たしたら、次の手順を実行して作業を開始します。

1. ヘッドレスアダプティブフォームのスターターキットをセットアップする install

スターターキットは、サンプルのヘッドレスアダプティブフォームとそれに対応するライブラリを備えた React アプリです。このキットを使用して、ヘッドレスアダプティブフォームとそれに対応する React コンポーネントを開発しテストします。ヘッドレスアダプティブフォームのスターターキットをセットアップするには、次のコマンドを実行します。

  1. コマンドプロンプトを開き、次のコマンドを実行します。

    code language-shell
    git clone https://github.com/adobe/react-starter-kit-aem-headless-forms
    

    このコマンドは、現在の場所に react-starter-kit-aem-headless-forms というディレクトリを作成し、その中にヘッドレスアダプティブフォームの React スターターアプリのクローンを作成します。このディレクトリには、フォームのレンダリングに必要な設定と依存関係のリストに加えて、次の重要なコンテンツが含まれています。

    • サンプルフォーム:スターターキットには、サンプルのローン申し込みフォームが含まれています。アプリに付属しているフォーム(フォーム定義)を表示するには、/react-starter-kit-aem-headless-forms/form-definations/form-model.json ファイルを開きます。
    • React コンポーネントのサンプル:スターターキットには、リッチテキストとスライダー用のサンプル React コンポーネントが含まれています。このガイドは、これらのリッチテキストコンポーネントとスライダーコンポーネントを使用して独自のカスタムコンポーネントを作成するのに役立ちます。
    • mappings.ts:mappings.ts ファイルは、カスタムコンポーネントをフォームフィールドにマッピングするのに役立ちます。例えば、数値ステッパーフィールドを評価コンポーネントとマッピングするといった場合です。
    • 環境設定:環境設定では、スターターキットに含まれているフォームをレンダリングするか、AEM Forms サーバーからフォームを取得するかを選択できます。

    note note
    NOTE
    ドキュメント内の例は VSCode に基づいています。任意のプレーンテキストコードエディターを自由に使用できます。
  2. react-starter-kit-aem-headless-forms ディレクトリに移動し、次のコマンドを実行して依存関係をインストールします。

    code language-shell
    npm install
    

    このコマンドは、ヘッドレスアダプティブフォームライブラリ
    (@aemforms/af-react-renderer、@aemforms/af-react-components、@adobe/react-spectrum)など、アプリの構築と実行に必要なすべてのパッケージとライブラリをダウンロードし、検証を実行して、フォームのインスタンスのデータを保持します。

2. ヘッドレスアダプティブフォームをプレビューする preview

スターターキットをセットアップした後、サンプルのヘッドレスアダプティブフォームをプレビューしてから、独自のカスタムフォームに置き換えることができます。また、AEM Forms サーバーからフォームを取得するように、スターターキットを設定することもできます。フォームをプレビューするには、次の手順に従います。

  1. env_template ファイルの名前を .env に変更します。また、USE_LOCAL_JSON オプションが true に設定されていることを確認します。

  2. 次のコマンドを使用して、アプリを実行します。

    code language-shell
      npm start
    

    このコマンドは、ローカル開発サーバーを起動し、スターターアプリに含まれているサンプルのヘッドレスアダプティブフォームをデフォルトの web ブラウザーで開きます。

    サンプルのヘッドレスフォーム

    これで完了です。カスタムのヘッドレスアダプティブフォームの開発を開始する準備がすべて整いました。

3. 独自のヘッドレスアダプティブフォームを作成しレンダリングする custom

ヘッドレスアダプティブフォームは、フォームとそのコンポーネント(フィールドやボタンなど)を、JSON(JavaScript Object Notation)形式で表します。JSON 形式を使用する利点は、様々なプログラミング言語で簡単に解析および使用できるので、システム間でフォームデータを交換する際に便利であることです。アプリに付属しているサンプルのヘッドレスアダプティブフォームを表示するには、/react-starter-kit-aem-headless-forms/form-definations/form-model.json ファイルを開きます。

「Name」、「Email」、「Contact Number」、「Message」の 4 つのフィールドを持つ、お問い合わせフォームを作成しましょう。これらのフィールドは JSON 内でオブジェクト(項目)として定義され、各オブジェクト(項目)には type、label、name、required などのプロパティがあります。フォームには、name が「submit」のボタンもあります。フォームの JSON コードは次のとおりです。

{
  "afModelDefinition": {
    "adaptiveform": "0.10.0",
    "items": [
      {
        "fieldType": "text-input",
        "label": {
          "value": "Name"
        },
        "name": "name"
      },
      {
        "fieldType": "text-input",
        "format": "email",
        "label": {
          "value": "Email"
        },
        "name": "email"
      },
      {
        "fieldType": "text-input",
        "format": "phone",
        "pattern": "[0-9]{10}",
        "label": {
          "value": "Contact Number"
        },
        "name": "Phone"
      },
      {
        "fieldType": "multiline-input",
        "label": {
          "value":"Message"
        },
        "name": "message"
      },
      {
        "fieldType": "button",
        "label":{
          "value": "Submit"
        },
        "name":"submit",
        "events":{
          "click": "submitForm()"
        }
      }
    ],
    "action": "https://eozrmb1rwsmofct.m.pipedream.net",
    "description": "Contact Us",
    "title": "Contact Us",
    "metadata": {
      "grammar": "json-formula-1.0.0",
      "version": "1.0.0"
    }
  }
}
NOTE
  • 「afModelDefinition」属性は、React アプリケーションにのみ必要で、フォーム定義の一部ではありません。
  • フォームの JSON コードは、手動で作成することもできますし、AEM アダプティブフォームエディター(アダプティブフォームの WYSIWYG エディター)を使用して作成し提供することもできます。実稼動環境では、AEM Forms を使用してフォームの JSON コードを提供します。詳細については後ほど説明します。
  • このチュートリアルでは、https://pipedream.com/ を使用してフォーム送信をテストします。ヘッドレスアダプティブフォームからデータを受信するには、組織が承認した独自のエンドポイントまたはサードパーティのエンドポイントを使用します。

フォームをレンダリングするには、サンプルのヘッドレスアダプティブフォーム JSON コード /react-starter-kit-aem-headless-forms/form-definations/form-model.json を、上記の JSON コードに置き換え、ファイルを保存し、スターターキットがコンパイルしてフォームを更新するまで待ちます

サンプルのヘッドレスアダプティブフォーム JSON コード をカスタムのヘッドレスアダプティブフォーム JSON コードに置き換える

これで、ヘッドレスアダプティブフォームが正常にレンダリングされました。

ボーナス

フォームをホストする web ページのタイトルを Contact Us | WKND Adventures and Travel に設定しましょう。タイトルを変更するには、react-starter-kit-aem-headless-forms/public/index.html ファイルを開いて編集し、タイトルを設定します。

次の手順

デフォルトでは、スターターキットはアドビの Spectrum コンポーネントを使用して、フォームをレンダリングします。独自のコンポーネントを作成して使用することも、サードパーティのコンポーネントを使用することもできます。例えば、Google マテリアル UI や Chakra UI を使用できます。

Google マテリアル UI を使用して、お問い合わせフォームをレンダリングしてみましょう。

recommendation-more-help
ce8b2828-9203-402e-a565-7b758c99b2ba