この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: メソッドの定義方法
SEOタイトル: Vue.js メソッド定義完全ガイド(Options API / Composition API / setup)

この記事の要点
  • Options API: methods: { greet() { ... } } に並べる。this でデータにアクセス可
  • Composition API +

    Options API のポイント

    • すべてのメソッドは methods: オブジェクト内に並べる
    • メソッド内では thisdata / props / 他メソッド / computed にアクセス
    • アロー関数で書いてはいけないthis が外側の this になってしまう)
    • 非同期処理 (async/await) もそのまま使える

    2. Composition API +

    Composition API のポイント

    • メソッドは通常の関数として

      子→親通信: emit

      
      
      
      
      
      
      
      
      
      

      ライフサイクルとメソッドの組合せ

      Options APIComposition APIタイミング
      beforeCreatesetup() 直前インスタンス作成前
      createdsetup()インスタンス作成済 / DOM 前
      beforeMountonBeforeMountDOM 挿入直前
      mountedonMountedDOM 挿入後(API 呼出はここ)
      beforeUpdateonBeforeUpdate再レンダリング前
      updatedonUpdated再レンダリング後
      beforeUnmountonBeforeUnmount破棄直前
      unmountedonUnmounted破棄完了

      composables(ロジックの再利用)

      Composition API の真価。メソッド + 状態をまとめて切り出し、他のコンポーネントで再利用できます:

      // composables/useCounter.js
      import { ref, computed } from 'vue';
      
      export function useCounter(initial = 0) {
        const count = ref(initial);
      
        const increment = () => count.value++;
        const decrement = () => count.value--;
        const reset = () => count.value = initial;
      
        const isZero = computed(() => count.value === 0);
        const doubled = computed(() => count.value * 2);
      
        return { count, increment, decrement, reset, isZero, doubled };
      }
      
      
      
      

      FAQ

      Q: Options API と Composition API はどちらを使うべき?
      A: 公式は新規プロジェクトでは Composition API を推奨。ただし Options API も将来も使えます。チームに合わせて選択。

      Q: this がうまく動かない
      A: Options API の methods 内でアロー関数を使っていないか確認してください。methods: { greet: () => { this.x } } は NG。methods: { greet() { this.x } } が正しい。

      Q: @click="greet"@click="greet()" の違い
      A: 前者は関数参照を渡す(イベントオブジェクトが第一引数に入る)、後者はその場で呼び出して戻り値を渡す。引数を渡したいときだけ括弧を付けます。