Yak shaving logs


My life is just yak shaving.

[Vue.js]vue-routerでvuex(store)にアクセスする

2017/08/21 #vue.js #vue-router #vuex

By Yusuke Takita


こんにちは。Kajitz inc.の瀧田です。

storeで管理している環境変数をvue-routerのbeforeEnter内で使いので this.$store してみたのですが、storeにアクセスできずにちょっとハマりました。

そもそもbeforeEnter内ではthisを使えない

vue-routerの公式ドキュメントを確認すると、beforeEnterやbeforeRouteEnterはコンポーネントを描画するルートが確立する前に呼ばれるため、まだthisが生成されていないとのことでした。

    // このコンポーネントを描画するルートが確立する前に呼ばれます。
    // `this` でのこのコンポーネントへのアクセスはできません。
    // なぜならばこのガードが呼び出される時にまだ作られていないからです!

https://router.vuejs.org/ja/advanced/navigation-guards.html

storeをインポートしてstoreにアクセスする

Evanさんが言うように、Just import the store. で解決しました。

import store from './../vuex' して、 store.getters.hoge すればOKです。

参考

https://forum.vuejs.org/t/how-to-use-vuex-in-router/13520
https://github.com/vuejs/vuex-router-sync/issues/26

このエントリーをはてなブックマークに追加

categories


最新記事


tags