NuxtJS – storeのnuxtServerInitアクションの実行

NuxtJS NuxtJS
https:/nuxtjs.org/
この記事は約2分で読めます。

最近はフロントエンド開発の技術に触れています。

NuxtJSのSSRモードで、storeのnuxtServerInitアクションの実行について勘違いしてしまっていた。事象は、ログインセッションがあるのにログインされていないと判断されログインページに飛んでしまうというもの。nuxtServerInitアクションが実行されていない?となり改めてドキュメントを見ると、nuxtServerInitアクションはプライマリモジュールのみが受けとると書いてあった(ちゃんと読めですね。。)

Only the primary module (in store/index.js) will receive this action. You’ll need to chain your module actions from there.

– https://nuxtjs.org/docs/2.x/directory-structure/store

複数のstoreモジュールでのnuxtServerInitの実行

間違いの書き方

以下の例では、サブモジュールでnuxtServerInitを実行しようとしています。しかし、dispatchされないので動きません。

正しい書き方

プライマリモジュールからuser namespaceのmutationsを呼びます。グルーバルのnuxtServerInitが呼ばれるので期待どおり動作します。

ソースの確認

nuxtのソースを見ると以下のようになっており、グローバルのnuxtServerInitが呼ばれています。

まとめ

  • nuxtServerInitアクションは、プライマリモジュールで指定する。
  • チェーンする場合は、プライマリモジュールから呼び出す。

参考リンク

  • https://nuxtjs.org/docs/2.x/directory-structure/store
  • https://qiita.com/erukiti/items/75792f5fd4d993de3f2f

コメント

タイトルとURLをコピーしました