ホームページ > 記事 > ウェブフロントエンド > お問い合わせフォームを使用した Astrobuild チュートリアル
Astro は、速度を重視して構築され、高速で SEO に優しい Web サイトを作成するために最適化された最新の静的サイト ジェネレーター (SSG) です。複数のフロントエンド フレームワークをサポートしているため、React、Vue、Svelte、さらには標準の JavaScript などのテクノロジーをプロジェクトに簡単に統合できます。 Astro では配布される JavaScript が少なくなるため、読み込み時間が短縮され、全体的なパフォーマンスが向上します。
このチュートリアルでは、次の手順について説明します:
始める前に、以下がインストールされていることを確認してください:
まず、新しい Astro プロジェクトを作成する必要があります。ターミナルを開いて次のコマンドを実行します:
npm create astro@latest
これにより、プロジェクトに名前を付けるよう求められます。プロジェクトの名前を選択し、セットアップを続行します。簡単にするために、デフォルト設定をそのまま使用できます。
プロジェクトが設定されたら、プロジェクト ディレクトリに移動します。
cd your-project-name
開発サーバーを起動するには、次のコマンドを実行します:
npm run dev
Astro プロジェクトは http://localhost:3000 で実行されているはずです。
Astro はファイルベースのルーティング システムを使用します。ホームページを作成するには、src/pages/ ディレクトリに移動し、index.astro というファイルを作成します。
src/pages/index.astro
index.astro に次のコードを追加します:
--- title = "Home" --- <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{title}</title> </head> <body> <h1>Welcome to My Astro Site</h1> <p>This is the homepage created using Astro.</p> </body> </html>
Astro は、フロントマター構文 (先頭の --- ブロック) を使用して、ファイル内で使用できる変数を宣言します。
同様に、About ページの about.astro ファイルを src/pages/ ディレクトリに作成します。
src/pages/about.astro
次のコードを追加します:
--- title = "About" --- <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{title}</title> </head> <body> <h1>About Us</h1> <p>This is the About page of our Astro project.</p> </body> </html>
新しいページを表示するには、http://localhost:3000/about にアクセスしてください。
繰り返しを避けるために、Astro はレイアウトをサポートしています。サイトの基本的なレイアウトを作成しましょう。
src/layouts/ ディレクトリと MainLayout.astro という新しいファイルを作成します。
src/layouts/MainLayout.astro
レイアウトに次のコードを追加します:
--- title = "My Astro Site" --- <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{title}</title> </head> <body> <header> <h1>Welcome to {title}</h1> <nav> <a href="/">Home</a> | <a href="/about">About</a> </nav> </header> <main> <slot /> </main> <footer> <p>© 2024 My Astro Site</p> </footer> </body> </html>
次に、このレイアウトを使用するように、index.astro ファイルと about.astro ファイルを更新しましょう。
index.astro の場合、コードを次のように置き換えます。
--- import MainLayout from '../layouts/MainLayout.astro'; title = "Home" --- <MainLayout> <h2>Welcome to My Astro Site</h2> <p>This is the homepage created using Astro.</p> </MainLayout>
同様に、about.astro のコードを次のように置き換えます。
--- import MainLayout from '../layouts/MainLayout.astro'; title = "About" --- <MainLayout> <h2>About Us</h2> <p>This is the About page of our Astro project.</p> </MainLayout>
サイト全体の一貫性を保つために、両方のページが共通のレイアウトを共有するようになりました。
Fabform.io は、バックエンドを必要とせずにフォームを Web サイトに追加できるシンプルなサービスです。フォーム エンドポイントを統合するだけで済み、残りは Fabform が処理します。
src/pages/ ディレクトリ内に新しいファイル contact.astro を作成します。
src/pages/contact.astro
基本的なお問い合わせフォームに次のコードを追加します:
--- import MainLayout from '../layouts/MainLayout.astro'; title = "Contact" --- <MainLayout> <h2>Contact Us</h2> <form action="https://fabform.io/f/your-form-endpoint" method="POST"> <label for="name">Name:</label> <input type="text" id="name" name="name" required /> <label for="email">Email:</label> <input type="email" id="email" name="email" required /> <label for="message">Message:</label> <textarea id="message" name="message" required></textarea> <button type="submit">Send</button> </form> </MainLayout>
ユーザーがフォームを送信すると、Fabform が送信を処理し、電子メールまたは設定したサービスを介して結果を送信します。
これで、Astro を使用した、複数のページ、共有レイアウト、Fabform.io によるお問い合わせフォームを備えた、シンプルで高速な Web サイトが完成しました。
├── src │ ├── layouts │ │ └── MainLayout.astro │ ├── pages │ │ ├── about.astro │ │ ├── contact.astro │ │ └── index.astro └── package.json
npm run dev を実行してサイトを再度プレビューし、すべてが期待どおりに動作することを確認します。
Astro を使用すると、最小限の JavaScript と高いパフォーマンスで静的 Web サイトを驚くほど簡単に構築できます。レイアウトやコンポーネントベースのアーキテクチャなどの機能を使用することで、コードをクリーンで再利用可能な状態に保つことができます。 Fabform.io を使用して問い合わせフォームを追加すると、バックエンドの構築を心配することなく、ユーザーのフィードバックを簡単に収集できます。
React や Svelte などの追加コンポーネントやフレームワークを統合して、このプロジェクトを自由に拡張して、Astro の全機能を探索してください!
以上がお問い合わせフォームを使用した Astrobuild チュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。