Vue.js入門ガイド

Vue.js概要

Vue.jsはプログレッシブフレームワークで、ユーザーインターフェース構築に特化しています。2014年2月にリリースされ、ビューレイヤに焦点を当てつつ、段階的に機能拡張できる設計が特徴です。

主要概念

  • HTML/CSS/JavaScript:構造・表現・動作層の基本要素
  • ネットワーク通信:Axiosライブラリ
  • ページ遷移:Vue Router
  • 状態管理:Vuex
  • UIフレームワーク:Element UI, ICE

フロントエンド技術スタック

主要フレームワーク比較

フレームワーク 特徴
Angular Google開発、TypeScript採用、MVCパターン
React Facebook開発、仮想DOMによる高性能レンダリング
Vue 漸進的採用、仮想DOMとモジュール化の融合

MVVMパターン

ViewModel層がModelとViewの仲介役となり、双方向データバインディングを実現します。

<script>
// ViewModel例
const app = new Vue({
  el: '#container',
  data: {
    content: '初期メッセージ'
  }
})
</script>

実践ガイド

基本構文

  • v-bind:データバインディング
  • v-if/v-else:条件分岐
  • v-for:リストレンダリング
  • v-on:イベントハンドリング
  • v-model:双方向バインディング

コンポーネント開発

// コンポーネント登録例
Vue.component('custom-item', {
  props: ['itemData'],
  template: '<li>{{ itemData }}</li>'
});

// 使用例
<custom-item v-for="(element, idx) in elements" :item-data="element">
</custom-item>

非同期処理

Axiosを使ったHTTP通信例:

methods: {
  fetchData() {
    this.axios.get('/api/data').then(response => {
      this.items = response.data;
    });
  }
}

ルーティング

Vue Routerの基本設定:

// router.js設定例
const routes = [
  { path: '/dashboard', component: Dashboard },
  { path: '/profile', component: UserProfile }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

状態管理

Vuexを使ったグローバル状態管理:

// store.js例
export default createStore({
  state: {
    count: 0
  },
  mutations: {
    increment(state) {
      state.count++;
    }
  }
});

開発環境構築

  1. Node.jsとnpmインストール
  2. Vue CLIセットアップ: npm install -g @vue/cli
  3. プロジェクト作成: vue create project-name

実践例カタログ

フォームバインディング

<template>
  <input type="text" v-model="inputValue">
  <p>入力内容: {{ inputValue }}</p>
</template>

動的コンポーネント

<component :is="currentView"></component>

ミックスイン活用

const reusableMixin = {
  methods: {
    utilityMethod() {
      // 共通処理
    }
  }
}

タグ: vue.js javascript フロントエンド開発 ルーティング コンポーネント設計

9月30日 16:38 投稿