๐ฃ ๋ค์ด๊ฐ๊ธฐ ์
์ด๋ ๋ Nuxt๋ก ๋ง๋ ํ๋ก์ ํธ์์ run server๋ฅผ ๋๋ฆด ๋๋ง๋ค ์ด์ํ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ฐ์ํ๊ธฐ ์์ํ๋ค.
Classic mode for store/ is deprecated and will be removed in Nuxt 3.
๋ฌด์จ ์๋ฌ์ด๊ธธ๋ ์ด๋ ๊ฒ ๋ฌด์ญ๊ฒ ์ฌ๋ฌ ๋ฒ ์ฐํ๋ ๊ฒ์ธ๊ฐ
์๋ฌ๊ฐ ์ฐํ๊ธด ํ์ง๋ง ํ๋ก์ ํธ ์ ๊ธฐ๋ฅ์์๋ ํน๋ณํ ํฐ ๋ฌธ์ ๊ฐ ์์ด์ ์ผ๋จ์ ๋ฌด์ํ๊ณ ์์์ผ๋,
์ง์์ ์ผ๋ก ์ฝ์ ๋ก๊ทธ์ ๋จ๋ค ๋ณด๋ ์ฌ์ฌ ์ ๊ฒฝ์ด ์ฐ์ฌ ์ด๋ฒ ๊ธฐํ์ ์์๋ณด๊ธฐ๋ก ํ๋ค.
๐ก Store์์์ Classic Mode๊ณผ Module Mode
Nuxt์์ store ๊ธฐ๋ฅ์ ํ์ฉํ๊ธฐ ์ํด์๋ /store ๋๋ ํฐ๋ฆฌ ์๋์ ํ์ผ์ ์์ฑํด์ผ ํ๋ค.
ํด๋น ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ์ ๋์ ์ด๋ฉฐ ๋ณ๊ฒฝ์ ํด์๋ ์๋๊ธฐ ๋๋ฌธ์
vuex๋ฅผ ์ด์ฉํ๊ธฐ ์ํด์๋ /store ๋๋ ํฐ๋ฆฌ ์๋์ ํ์ผ์ด ์์ฑ๋์ด์ผ ํ๋ค.
store ๋๋ ํฐ๋ฆฌ ํ์์ ํ์ผ์ ์์ฑํ๋ ๋ฐฉ์์ ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ
๊ทธ ๋ฐฉ์์ด Classic Mode์ Module Mode์ธ ๊ฒ์ด๋ค.
-
Class Mode : store ๋๋ ํฐ๋ฆฌ ๋ด index.js์์ vuex๋ฅผ important ํ ํ new Vuex.store()๋ก store ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ
-
Module Mode: store ๋๋ ํฐ๋ฆฌ ํ์. js ํ์ผ์์ ๋ณ๋์ vuex important ๋์ export ๊ตฌ๋ฌธ์ ์ด์ฉํ์ฌ state, mutations, action, gatter ๋ฑ์ ์์ฑํ์ฌ ๋ค์์คํ์ด์ค ์์ฒด๋ฅผ ๋ชจ๋๋ก์ ์ด์ฉ๋๋ ๋ฐฉ๋ฒ
์ฆ, ์์ ์๋ฌ๋ ๋ ์ด์ storeํ์ ํด๋์ index.js์์ import vuex ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ง ๋ง๊ณ
๋ชจ๋ ํํ๋ก ๋ฐ๊พธ๋ผ๋ ์๋ฌ์๋ค.
๊ธฐ์กด ์ฝ๋
ํ์ฌ ์ฝ๋์ ๊ฒฝ์ฐ new Vuex.store() ์์์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default () => new Vuex.Store({
state: () => ({
...
}),
mutations: {
...
},
getters: {
...
},
actions: {
...
},
})
์์ ์ฝ๋
์์ ์ฝ๋๋ฅผ Module Mode ๋ฐฉ์์ผ๋ก ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํ๋ฉด ๋ ์ด์ ํ๋ก์ ํธ ์คํ ์ ์์ ์๋ฌ๊ฐ ๋ํ๋์ง ์๋๋ค!
export const state = () => ({
...
});
export const mutations = {
...
};
export const getters = {
...
}
export const actions = {
...
};
Reference
vuex.vuejs.org/guide/strict.html#strict-mode
vuex.vuejs.org/guide/modules.html
jeremywynn.com/blog/going-from-vuex-classic-store-to-modules-in-nuxt/