0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

create-vite で生成される Vue + TypeScript プロジェクトを調査

Posted at

この記事の目的

この記事の対象読者

前提

  • node v22.11.0
  • vite v6.0.1

プロジェクトの自動生成

以下コマンドを実行。

npm create vite@6.0.1 {プロジェクト名} -- --template vue-ts

生成されたプロジェクトについて

ディレクトリ構造

.
├── README.md // README.md
├── index.html // エントリーポイント
├── package.json
├── public
│   └── vite.svg
├── src
│   ├── App.vue // 自動生成されるコンポーネント
│   ├── assets
│   │   └── vue.svg
│   ├── components
│   │   └── HelloWorld.vue // 自動生成されるコンポーネント
│   ├── main.ts 
│   ├── style.css
│   └── vite-env.d.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts

Vue 周り

index.html

index.html の body 要素下には下記コードが実装されている。

<div id="app"></div>
<script type="module" src="/src/main.ts"></script>

script タグで main.ts を読み込んでいる。

main.ts

main.ts では、下記コードが実装されており、 アプリケーション API | Vue.js によると、 createApp() で作成されたアプリケーションインスタンスを index.html の id 属性値が app の div 要素にマウントしている。
createApp() の第一引数は ルートコンポーネントを指定する。
ここでいうと、 App.vue で定義されたコンポーネントのこと。

createApp(App).mount('#app')

App.vue

下記のような実装で HelloWorld コンポーネントを msg の値に Vite + Vue を渡して呼び出している。

<HelloWorld msg="Vite + Vue" />

HelloWorld.vue

defineProps<{ msg: string }>()

で 親コンポーネント (App.vue) から msg の値を受け取り、

<h1>{{ msg }}</h1>

で表示している。
{{ 変数名 }} はマスタッシュ構文と呼ばれるもので、 Vue ではこの構文を用いて引数の値を呼び出している。

const count = ref(0)

このコードでは、 ref() 関数を用いて、初期値が 0 のリアクティブ変数 count を定義している。
リアクティブ変数として定義されると、値の変更が監視され、値の変更が画面に反映される。
下記コードでは、 ボタンをクリックすると count の値が 1 増え、このとき count がリアクティブ変数として定義されていることでクリックする度に count の値が画面上でも 1 増える。

<button type="button" @click="count++">count is {{ count }}</button>

その他

  • vite.config.ts: Vite の設定が記載されている
  • tsconfig.jsontsconfig.app.jsontsconfig.node.json: TypeScript の設定が記載されている

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?