2020年12月へ

Vue.jsでうまくリアクティブされないからVuexを使った

公開日:

最終更新日:

要約

Vue.js(Nuxt)で教材開発を進める中、コンポーネント内の変数変更がリアクティブに反映されず苦労しました。試行錯誤の末、変数をコンポーネントからVuexストアに移して管理することで、描画が正常に更新されるようになりました。特にsetInterval内での変数更新がVueの検知外だったため、Store管理で解決。11月は災難もありましたが、論文執筆に向け前向きに取り組んでいます。

  • Vue.js
  • Nuxt
  • リアクティブ
  • Vuex
  • 状態管理
  • setInterval
  • 教材開発
  • 論文執筆

教材開発について,Vue.js(Nuxt) で進めていますが,コンポーネントにもたせた変数の変更を,Vue側がうまいこと検知してくれません。そのため,値が変わっても表示側が更新されないというところで,長いこと躓いていました。

あらかたググったのですが解決策は見つからず。
取り急ぎ解決した方法として,コンポーネントに変数を持たせるのではなく,Store(Vuex)に持たせることで,その変数を変更・監視させるようにしたら,描画もスムーズに更新されるようになりました。

変数を更新している箇所ですが,mounted()で呼び出している関数にて,setIntervalでまた別の関数を呼び出し,その中でコンポーネント内の変数を更新させていました。しかし,その変更をVueは検知してくれません。vm.setやら色々試したのですが,どれもうまくいかず。仕方ないので,Storeで統一して管理することに。ややこしい。


11月は災難な月でした。
そのことについて,色々と書こうか迷ったのですが,書きません。面倒なことは嫌です。

前を向いて,論文執筆のため,教材開発をつづけます。