Composition API

setup フックの中でストアにアクセスするには、useStore 関数を呼び出します。これは、Option API を使って、コンポーネント内で this.$store を取得するのと同等です。

import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()
  }
}

ステートとゲッターへのアクセス

ステートやゲッターにアクセスするためには、リアクティビティを保持するために computed による参照を作成する必要があります。これは、Option API を使って、算出プロパティを作成するのと同じことです。

import { computed } from 'vue'
import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // computed 関数のステートにアクセスします
      count: computed(() => store.state.count),

      // computed 関数のゲッターにアクセスします
      double: computed(() => store.getters.double)
    }
  }
}

ミューテーションとアクションへのアクセス

ミューテーションとアクションにアクセスするには、setup フック内で commitdispatch 関数を呼び出します。

import { useStore } from 'vuex'

export default {
  setup () {
    const store = useStore()

    return {
      // ミューテーションにアクセスする
      increment: () => store.commit('increment'),

      // アクションにアクセスする
      asyncIncrement: () => store.dispatch('asyncIncrement')
    }
  }
}

Composition API での実装例

Vuex と Vue の Composition API を利用したアプリケーションの例は、Composition API example をご覧ください。