Nuxt.jsで「Classic mode for store/ is deprecated and will be removed in Nuxt 3.」のエラーメッセージが表示される場合の対処法

Nuxt.jsのバージョン3.X以降だとVuexを使う場合に「クラシックモード」という使い方だと下記のエラーメッセージが表示されました。
Classic mode for store/ is deprecated and will be removed in Nuxt 3.ネット上でVuexの記事を探すと、意外とクラシックモードで書かれてある記事が多いので、そのままコピペすると上記のエラーが表示されてしまいます。
今回はクラシックモードからモジュールモードに書き換える方法をまとめておきます。
Vuexのクラシックモードからモジュールモードへの書き換え
下記いずれかの場合に、モジュールモードを使っていると判定されます。
index.jsがstoreオブジェクトをexportしていないindex.jsがそもそも存在していない場合
index.jsを開いてみて、下記のように最後に「export default store」があるとクラシックモードです。
import Vuex from 'vuex'
const state = () => ({
変数名: 初期値,
変数名: 初期値
})
const getters = {
// stateの状態を外部で取り出すときに使用する
変数名: state => state.変数名
}
const mutations = {
ミューテーション関数名(state, 引数){
// ここでstate(ストアの状態)を変更する
state.変数名 = 値
}
}
const actions = {
async アクション関数名({ commit }){
// ここでミューテーションを呼び出し、外部とのAPI通信や非同期処理も行う
commit('ミューテーション関数名', 引数)
}
}
const store = () => new Store({
state,
getters,
mutations,
actions
})
export default storeこれをモジュールモードに書き換えると下記のようになります。
export const state = () => ({
変数名: 初期値,
変数名: 初期値
})
export const getters = {
// stateの状態を外部で取り出すときに使用する
変数名: state => state.変数名
}
export const mutations = {
ミューテーション関数名(state, 引数){
// ここでstate(ストアの状態)を変更する
state.変数名 = 値
}
}
export const actions = {
async アクション関数名({ commit }){
// ここでミューテーションを呼び出し、外部とのAPI通信や非同期処理も行う
commit('ミューテーション関数名', 引数)
}
}それぞれ個別にexportしています。
その他の細かいVuexの使い方は過去に記事にしているので、そちらも参考にしてください。


SVGを操作するためのCSSプロパティまとめ
効率的なマークアップが出来るようになるEmmetでHTMLを書く時の基本
WordPressで「現在メンテナンス中のため、しばらくの間ご利用いただけません。」の状態でログインできなくなった場合の対処法
Google Chromeでinput要素の補完機能を使うと背景に色がついてしまう問題
JavaScriptで簡単にCookie操作ができるライブラリ「js-cookie」
Vue CLI 3でfaviconの設定をする方法
pointer-eventsプロパティでクリックイベントを無効化にする|気になるCSSプロパティ
ウェブ上でLaTeXで数式をキレイにプレビューするJavaScriptライブラリ「MathJax」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Keyboard Maestroでスニペットの登録をする方法
Google関連サービスをすばやく確実に変換するための単語登録サンプル
Spreadsheetでチェックボックスを使う|作り方の基本から、チェックした数の取得や進捗率の表示まで
CSSで::placeholderにスタイルを設定する方法
goenvを使って、MacにGo言語をインストールする
SourceTreeでURLからクローンするときに自動で入力される「保存先のパス」を変更する方法
Macの外部ディスプレイで特定の画面だけミラーリングさせる方法
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」
Fantastical 3がサブスクリプションモデルになりUIが刷新!予定の管理がさらに便利になる機能が追加
Visual Studio Codeの「Debugger for Chrome」でJavaScriptのデバッグを行う