ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
方法1: CDN で 1 行インストール
最も手軽な方法。HTML ファイル 1 つで動きます。学習や検証、既存ページへの部分導入に向いています。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Vue 3 Hello</title>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
<button @click="count++">{{ count }} 回押された</button>
</div>
<!-- ★ ここで Vue 3 を読み込む -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
const { createApp, ref } = Vue;
createApp({
setup() {
const message = ref('こんにちは Vue 3!');
const count = ref(0);
return { message, count };
}
}).mount('#app');
</script>
</body>
</html>
本番では vue.global.prod.js を使い、サイズを小さく:
<!-- 開発版 (warnings あり) -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<!-- 本番版 (圧縮、warnings なし) -->
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<!-- ES Modules で読む場合 -->
<script type="module">
import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';
// ...
</script>
方法2: create-vue (推奨)
公式の Vite ベース足場ツール。Node.js 18+ が必要です。
# Node.js 18+ を用意 (推奨は 20 LTS)
node -v # v20.x 以上
# プロジェクト作成 (対話形式)
npm create vue@latest
# 質問内容 (例)
# ✔ Project name: … my-vue-app
# ✔ Add TypeScript? … No / Yes
# ✔ Add JSX Support? … No / Yes
# ✔ Add Vue Router for Single Page Application development? … No / Yes
# ✔ Add Pinia for state management? … No / Yes
# ✔ Add Vitest for Unit Testing? … No / Yes
# ✔ Add an End-to-End Testing Solution? … No / Cypress / Playwright
# ✔ Add ESLint for code quality? … No / Yes
# ✔ Add Prettier for code formatting? … No / Yes
cd my-vue-app
npm install
npm run dev
# ➜ Local: http://localhost:5173/
方法3: 既存プロジェクトに npm で追加
# Vue 本体だけ追加
npm install vue@3
# よく入れる関連
npm install vue-router@4 # ルーティング
npm install pinia # 状態管理 (Vuex 後継)
npm install @vitejs/plugin-vue --save-dev # Vite で .vue を扱う
npm install -D vite # ビルドツール
# package.json の起動スクリプト
# "scripts": {
# "dev": "vite",
# "build": "vite build",
# "preview": "vite preview"
# }
方法4: Vue CLI (レガシー、非推奨)
Webpack ベースの旧足場。新規プロジェクトでは create-vue (Vite) を使ってください。
# 旧 CLI (Webpack)
npm install -g @vue/cli
vue create my-app
cd my-app
npm run serve
# 公式は 2023 以降 maintenance mode
# 新規は create-vue 推奨
create-vue で作られる構成
my-vue-app/
├── index.html
├── package.json
├── vite.config.js
├── public/
│ └── favicon.ico
└── src/
├── main.js # ← createApp(App).mount('#app')
├── App.vue # ← ルートコンポーネント
├── components/
│ └── HelloWorld.vue
├── router/ # vue-router 選択時
│ └── index.js
└── stores/ # pinia 選択時
└── counter.js
最初のコンポーネント (Single File Component)
<!-- src/App.vue -->
<script setup>
import { ref, computed } from 'vue';
const count = ref(0);
const doubled = computed(() => count.value * 2);
const increment = () => count.value++;
</script>
<template>
<h1>Hello Vue 3</h1>
<p>count: {{ count }} / doubled: {{ doubled }}</p>
<button @click="increment">+1</button>
</template>
<style scoped>
h1 { color: #42b883; }
</style>
Composition API vs Options API
| 項目 | Composition API (推奨) | Options API |
|---|---|---|
| 記法 | <script setup> + ref / computed | data() {} / methods: {} |
| ロジック再利用 | composable 関数 (useFoo()) | mixin (非推奨) |
| TypeScript | 型推論が効きやすい | 型注釈が冗長 |
| 学習曲線 | やや高 | 低 (直感的) |
| 推奨 | Vue 3 の標準 | 既存プロジェクト互換 |
開発サーバ / ビルドコマンド
# 開発サーバ (HMR 付き、http://localhost:5173)
npm run dev
# 本番ビルド (dist/ に出力)
npm run build
# ビルド結果のローカルプレビュー
npm run preview
# 型チェック (TS 利用時)
npm run type-check
# テスト (Vitest 選択時)
npm run test:unit
FAQ
Q: Vue 2 と Vue 3、どちらを学ぶべき?
A: 新規は Vue 3。Vue 2 は 2023/12/31 で EOL。既存 Vue 2 プロジェクトは vue-demi や Vue 2.7 を経て段階的に移行。
Q: TypeScript は必須?
A: 必須ではないが推奨。create-vue で「Add TypeScript? Yes」を選ぶだけで設定済。
Q: Nuxt.js とは?
A: Vue の SSR / SSG フルスタックフレームワーク。Next.js (React) に相当。npx nuxi@latest init my-app で開始。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- インストール(ファイルのダウンロード)
- npmを使用したプロジェクトの作成
- for 繰り返し処理
- ifの条件分岐とtemplateを用いたグループ化
- クリック時のイベント処理(on:click)
- modelとdata フォーム入力値とDOMへの即時反映
- computed(算出プロパティ)と使い方とdataとの違い
- ライフサイクルフック(created / mounted / updated / destroyedの使い方)
- $nextTickの使い方(ライフサイクルフック)
- メソッドの定義方法
- エラー一覧
- ルーティング設定
- aリンクの貼り方と動的URLの作成
- Mixinを利用した共通処理の記述方法
- v-bindによるデータ連携
- ヘッダー/フッターの共通コンポーネント
- ナビゲーションの現在ページをハイライトする方法
- 画面サイズの取得方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?