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の使い方は過去に記事にしているので、そちらも参考にしてください。



「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
SourceTreeでBacklogのGitを使うときに、権限エラーになってしまう場合の解決法
CSSでclassがついていないタグにだけスタイルを当てる方法
TwitterとFacebook用のOGP設定方法と表示確認方法
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
さくらのレンタルサーバで.htaccessが原因で500エラーになってしまう場合のチェックリスト
Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!
「epel-release」インストール後にyum installで「Cannot retrieve metalink for repository」と表示される場合の対処法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎