Vuetifyを使った開発 ~環境構築とHellowWorld~

IT

Vuetifyを使った開発の手順をまとめていきます。

Vuetifyを利用することで、簡単に洗練されたデザインを作成することができます。今回は、環境構築と簡単な画面の作成を行います。

参考にするコードはVuetifyの公式サイトを参考にしています。詳細はこちらをご確認ください。

前提条件

oswindows11
nodev20.11.1
npm10.5.0
Vue3.4.21
Vuetify3.5.9
エディターVS Code

nodeなどは事前にインストールしているものとして進めます。

Vuetifyプロジェクトの作成

次のコマンドを実行します。

npm create vuetify

以下の画像のようにプロジェクト名などを聞かれますので、ご自身の環境に合わせて入力・選択します。なお、コマンド実行時のnpmのバージョンが古かったため、vuetifyプロジェクト作成後にコマンド結果に従いアップデートしました。

デバッグ設定

コマンド実行後、指定したプロジェクト名のフォルダが作成されています。お好みのIDEなどで開発を行うために、まずはデバッグの設定を行います。VS Codeを利用している場合は、以下の記事に設定方法を記載しています。デバッグ設定を行うことで、F5を押すだけで自動的にアプリが起動してデバッガーをアタッチできるようになります。

実行とカスタマイズ

Vueアプリの準備ができましたので、実行してみましょう。以下のようにHelloWorldページが表示されたら成功です。なお、デフォルトで「dark」というテーマが指定されています。そのため背景が黒色となっています。他に、「light」というテーマも選択できます。この辺の詳しい設定は、次回以降見ていきます。

これだけだと物足りないため、簡単にこのページをカスタマイズします。ここからは、デバッグ実行はそのまま継続して問題ありません。コードを編集して保存すると自動的にブラウザに反映されます。

メインコンテンツの編集

プロジェクトの「src」ディレクトリにある「App.vue」を開きます。そして、「v-main」で囲まれた範囲を以下のように編集します。もともと記載されている「<HelloWorld />」はコメントアウトします。

<template>
  <v-app>
    <v-main>
      main
      <!-- <HelloWorld /> -->
    </v-main>
  </v-app>
</template>

左上に「main」と表示されたら成功です。

Appバーの追加

いわゆるヘッダーのことです。Vuetifyでは「app-bar」と呼ばれています。

まずは、「src/components」ディレクトリに「MyBar.vue」を作成します。そして以下のHTMLを追加します。

<template>
    <v-app-bar color="primary" density="compact">
        <template v-slot:prepend>
            <v-app-bar-nav-icon></v-app-bar-nav-icon>
        </template>
        <v-app-bar-title>App bar</v-app-bar-title>
        <template v-slot:append>
            <v-btn icon="mdi-dots-vertical"></v-btn>
        </template>
    </v-app-bar>
</template>

つづいて、「App.vue」を以下のように書き換えます。具体的には「<MyBar />」を3行目に追加します。

<template>
  <v-app>
    <MyBar />
    <v-main>
      main
      <!-- <HelloWorld /> -->
    </v-main>
  </v-app>
</template>

すると、上部に青いヘッダーが表示されます。ヘッダーには、タイトルやアイコンを並べています。CSSを一から書かなくても、簡単に各要素を配置することができます。右端に要素を配置する時はどんなCSSを書けばいいのか悩まずに済みます。これがVuetifyの素晴らしいところです。アイコンもデフォルトで用意されています。

ナビゲーションの追加

左端にある各ページへのリンクが記載されたバーのことです。Vuetifyでは「navigation-drawer」と呼ばれます。Appバーと同様に「src/components」に「MyNavigation.vue」を追加して、以下のコードを記載します。

なお、2行目の「v-navigation-drawer」にpermanent」属性を付与しています。これを付けないとナビゲーションが表示されません。私はこれで数時間を無駄にしました。

<template>
    <v-navigation-drawer class="bg-deep-purple" permanent>
        <v-list-item title="Navigation" subtitle="test"></v-list-item>
        <v-divider></v-divider>
        <v-list-item link title="Home"></v-list-item>
        <v-list-item link title="Test"></v-list-item>
    </v-navigation-drawer>
</template>

App.vue」も同様に「<MyNavigation />」を追加します。

<template>
  <v-app>
    <MyBar />
    <MyNavigation />
    <v-main>
      main
      <!-- <HelloWorld /> -->
    </v-main>
  </v-app>
</template>

再度ブラウザを確認すると、左側に紫色でナビゲーションが表示されます。簡単にそれっぽい画面を作成できました。メインコンテンツはきちんとAppバーとナビゲーションの内側に表示されます。一からCSSを当てていると、メインコンテンツが隠れてしまったりして、なかなか思うようにコンポーネントを配置できません。しかし、Vuetifyを利用すると、細かいことはすべてVuetifyが行ってくれるため、とても簡単に作成することができます。

備考

今回の内容とはあまり関係ありませんが、1つ気になったところをメモしておきます。

src/main.ts」をVSCodeで開くと、以下のようにエラーが発生しました。結論を言うとこのエラーは解決できていません。「tsconfig.json」やVSCodeの設定をいろいろ試してみましたが、変わらずでした。VSCodeで「tsconfig.json」が認識されていないことも気になります。

しかし、動作には影響ないため現状は無視しています。

最後に

Vuetifyを利用することで、とても簡単にいい感じのデザインを作成することができました。まだまだほんの一部の機能しか使用していませんが、便利さの片鱗は感じられたと思います。

今後は各コードを細かく見ていき、より詳細を学んでいきたいと思います。今回はここまでとします。

コメント