再利用可能なナビゲーションコンポーネントを作成する
Astroサイトの複数のページに同じHTMLが書かれているので、重複したコンテンツを再利用可能なAstroコンポーネントに置き換えましょう!
ここで学ぶことは…
- コンポーネント用の新しいフォルダを作成する
- ナビゲーションリンクを表示するAstroコンポーネントを作成する
- 既存のHTMLを再利用可能な新しいナビゲーションコンポーネントに置き換える
src/components/
フォルダを作成する
HTMLを生成するものの新しいページにはならないような.astro
ファイルを保持するために、プロジェクトにsrc/components/
という新しいフォルダが必要になります。
ナビゲーションコンポーネントを作成する
-
src/components/Navigation.astro
という新しいファイルを作成します。 -
各ページの上部にあるページ間を移動するためのリンクをコピーして、新しいファイル
Navigation.astro
に貼り付けます。.astro
ファイルのフロントマターの中身がない場合は、コードフェンスを書かなくても構いません。必要になってからいつでも追加できます。
Navigation.astroをインポートして使用する
-
index.astro
に戻り、コードフェンスの中で新しいコンポーネントをインポートします。 -
続いて、下部にある既存のナビゲーション用HTMLリンク要素を、先ほどインポートした新しいナビゲーションコンポーネントに置き換えます。
-
ブラウザでプレビューを確認すると、以前とまったく同じに見えるはずです。それで問題ありません!
サイトには以前と同じHTMLが含まれています。しかし、この3行のコードは、現在は<Navigation />
コンポーネントによって提供されているのです。
やってみよう - サイトの残りのページにナビゲーションを追加する
同じ方法により、サイトの他の2つのページ(about.astro
とblog.astro
)で<Navigation />
コンポーネントをインポートして使用してみましょう。
以下を忘れないでください。
- コードフェンスの中のコンポーネントスクリプト上部に、インポート文を追加します。
- 既存のコードをナビゲーションコンポーネントに置き換えます。
ブラウザ上のページの見た目を変えずにコードの構造を変更することをリファクタリングと呼びます。このユニットでは、ページのHTMLの一部をコンポーネントに置き換えることで、何度もリファクタリングをおこないます。
これにより、動作しているもののプロジェクト全体にわたって重複しているコードを使って素早く開始できます。こうして、サイトの外観を変更することなく、既存のコードの設計を段階的に改善できます。
確認テスト
-
複数のページで同じ要素が繰り返し使用されている場合、何が可能ですか?
-
Astroコンポーネントに関する記述として正しいものはどれですか?
-
Astroコンポーネントがサイトに新しいページを自動的に作成するのは、どのような場合ですか?
チェックリスト
参考
-
Refactoring 外部サイト