最近Nuxt.jsを用いたプロジェクトをはじめました。

今回はSPAを構築しており、アプリケーションが読み込まれたときの初期化処理を入れたくて、いい方法が無いかと探してみました。

するとnuxt-client-init-moduleがあり、これが理にかなっていそうだと導入してみました。

しかし、いまいち意図した動作をしてくれなかったので、調査した結果と対策の備忘録です。

mountedよりも後にnuxtClientInitが走る

アプリケーションが読み込まれてからの初期化なので最初に読み込まれるページのcreatedよりも前に実行されることを期待していました。

しかしどうにも挙動がおかしい…。

ということで愚直にconsole.logを仕込んだところ、nuxtClientInitmountedの後に実行されていました。

これでは意図していた挙動と異なるのも当然です。

モジュールの調査と目的に対応する修正

どうもこのsetTimeoutが原因のようです。

しかし、一個前のコミットでは入っていなかった。こちらだとうまく動く。

ということで、ひとまずプラグインとして実装する方向で対応しました。

(または古いバージョンのパッケージを入るというのでも良かったかも)

検証用のソースコードはこちらです。

Github Pageとしてもアップしてあるので、参考になれば。