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


アクセス解析ツールの定番!!Googleアナリティクスの登録方法
iOS Safariで文章の最後の1文字だけ改行されてしまう現象の対処法
Dart Sassでファイルを分割して管理する方法|Dart Sass入門
スクロール時に表示領域に画面がくっつくようになる処理をCSSだけで実現する「scroll-snap」
MacのRubyをrbenvで管理する方法
Bracket Pair ColorizerでVisual Studio Codeの括弧を色分けして見やすくする
Visual Studio CodeでDart Sassのコンパイルができる拡張機能「DartJS Sass Compiler and Sass Watcher」
JavaScriptで特定のOSやブラウザの判定を行う方法
Visual Studio Codeの文字サイズやタブサイズの設定方法
「EWWW Image Optimizer」を使ってWordPressをWebPに対応する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
HyperSwitchで「This beta version has expired」と表示される場合は、公式サイトから再度インストールしてアップデート
Default Folder X 6.3.1のFinderファイルドラッグ時にメニューからポップアップが出ないようにする
ブログに見出しを設置できるjQueryプラグイン「TOC | jQuery Table of Contents」
WordPressのプラグインはどれを入れたら良い?とりあえず最初に導入をオススメするプラグイン一覧
Bartenderの「Quick Search menu bar items」でメニューアイコンを検索してアクティブにする方法
Macのキレイなマインドマップアプリ「MindNode 6」
JavaScriptパッケージマネージャーをnpmからYarnへ移行しました
動画の圧縮をFinder右クリックメニューの「選択したビデオファイルをエンコード」から行う
「DevTools z-index」でz-indexがかかっている要素をChrome開発者ツールに一覧表示させる