SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

JavaScriptフレームワーク「Vue 3」と「Nuxt 3」の活用

Vue.jsの基本記法をおさらいしつつ、Nuxt 3ならではの「useAsyncData」「useFetch」機能を試してみよう

JavaScriptフレームワーク「Vue 3」と「Nuxt 3」の活用 第2回

Nuxt 3プロジェクトの構造を確認

 次に、Nuxt 3のCLIツールで作成できるプロジェクトの構造を確認していきます。

プロジェクトに機能を追加できるさまざまなフォルダー

 作成直後のNuxt 3プロジェクトは、図2の通り最低限のファイルだけで構成されます。各ファイルの役割は前回記事を参照してください。

図2 CLIツールで生成したNuxt 3のプロジェクト内容(p002-plain)
図2 CLIツールで生成したNuxt 3のプロジェクト内容(p002-plain)

 このプロジェクトに特定の名前のフォルダーを作成してファイルを配置することで、さまざまな機能を利用できます。利用できるすべてのフォルダーを配置したプロジェクトは図3の通りとなります(図3のサンプルは各フォルダーを追加しただけで、機能の実装は行っていません。また、pagesフォルダーを生かすため、app.vueをpages/index.vueに移動しています)。

図3 Nuxt 3プロジェクトで利用できる機能のフォルダーをすべて追加した状態(p003-project)
図3 Nuxt 3プロジェクトで利用できる機能のフォルダーをすべて追加した状態(p003-project)

 各フォルダーの名前と利用方法の概要を、表1に示します。

表1 図3に示した各フォルダーの利用方法(p003-project)
No. フォルダー名 配置されるファイル
1 assets スタイルシートやフォントなど
2 components Webページを構成するコンポーネント(*.vueファイル)
3 composables Composition APIによるコンポーネントの実装を記述したJavaScriptファイル
4 layouts 複数のコンポーネントやページで共用できるレイアウト(*.vueファイル)
5 middleware 特定のルート(パス)へのアクセス時に行う処理を記述したJavaScriptファイル
6 pages Webページを構成するページファイル(*.vueファイル)
7 plugins プロジェクト全体で使える機能を提供するプラグインのJavaScriptファイル
8 public robots.txtやfavicon.icoなど
9 server Web APIなど、サーバー側で提供する機能のJavaScriptファイル

 各フォルダーの具体的な利用方法は、必要になった時に本連載で随時紹介します。本記事の後半では、データをWebページに提供するWeb APIを実装するため、No.9のserverフォルダーを利用します。

プロジェクトの設定を記述するnuxt.config.tsファイル

 Nuxt 3プロジェクトのさまざまな設定は、nuxt.config.tsファイルにdefineNuxtConfig関数の引数として記述します(デフォルトでは何も記述されていません)。例えば、Webページで共通の<head>要素の内容を、リスト5の通り設定できます。

[リスト5]Nuxt 3プロジェクトの設定ファイル(p003-project/nuxt.config.ts)
export default defineNuxtConfig({
  app: {
    // <head>要素
    head: {
      // <meta>要素
      meta: [
        {
          name: 'viewport',
          content: 'width=device-width, initial-scale=1'
        }
      ],
      // <script>要素
      script: [
        { src: 'https://cdn.tailwindcss.com' }
      ]
    }
  }
})

 defineNuxtConfigで指定できるすべての設定値は、Nuxt 3の公式ドキュメントにリストされています。本連載でも、nuxt.config.tsへ設定が必要になった時に随時説明していきます。

次のページ
Nuxt 3ならではの機能、「useAsyncData」「useFetch」の利用法

この記事は参考になりましたか?

JavaScriptフレームワーク「Vue 3」と「Nuxt 3」の活用連載記事一覧
この記事の著者

WINGSプロジェクト  吉川 英一(ヨシカワ エイイチ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/15985 2022/07/13 11:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー