2022. 6. 5. 23:51ใFront-End ์์ ์ค/Nuxt.js
Git Hub
๐ ๋ชฉ์ฐจ
โ [Vue+Nuxt.js] Nuxt.js ๊ธฐ๋ณธ
โ[Vue+Nuxt.js] Nuxt.js ์์ํ๊ธฐ
โ [Vue+Nuxt.js] Nuxt.js Data ํธ์ถ ๋ฐฉ์๊ณผ API ์ฐ๋
โ[Vue+Nuxt.js] Nuxt.js๋ฅผ ์ด์ฉํ์ฌ ์ผํ ์ํ ๋ชฉ๋ก ํ์ด์ง์ ์์ธ ํ์ด์ง ๊ฐ๋ฐ
โ [Vue+Nuxt.js] Nuxt.js๋ฅผ ์ด์ฉํ์ฌ ์ผํ ์ํ ๊ฒ์ UI ๊ฐ๋ฐ
โ[Vue+Nuxt.js] Vuex๋ฅผ ์ด์ฉํ์ฌ ์ฅ๋ฐ๊ตฌ๋ Page ๋ง๋ค๊ธฐ
โ [Vue+Nuxt.js] Vuex ์๋ก๊ณ ์นจ ์ ์ด๊ธฐํ ๋๋ ๋ฌธ์ ํด๊ฒฐ
๐ ๋ถ๋ก
โ [FrontEnd] HMR(Hot Module Replacement)
โ [Nuxt.js] ๋น๋๊ธฐ ๋ฐ์ดํฐ ํธ์ถ ๋ฐฉ๋ฒ
โ V-Model ๋์ ์๋ฆฌ์ ํ์ฉ ๋ฐฉ๋ฒ
โ [Nuxt.js] NuxtServerInit
๐ ๋ด๊ฐ ๋ง๋ Error
โ [vuex] expects string as the type, but found undefined.
๐ Cart Page
๐ฝ Cart Page ์ ์ํ๊ธฐ
์ง๋ ์๊ฐ์ /pages/detail_id.vue๋ฅผ ์ฒ์ ๋ง๋ค ๋, 15๋ฒ์งธ ์ค์ button Tag๋ฅผ ์ ์ ์ฃผ์ ์ฒ๋ฆฌ ํด ๋๊ณ , ์งํ์ ํ์์ด์. ์ด์ ์ด ์ฃผ์์ ํ๊ณ , Cart Page๋ก ์ด๋ํ ์ ์๋ Button์ ์์
ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์.
์ต์ด Click(@click) Event๊ฐ ๋ฐ์ํ๋ฉด addToCart()๋ฅผ ํธ์ถ ํ๋ Button์ ๋ง๋ค์ด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค์ sciprt Tag์์ methods ๊ฐ์ฒด์ addToCart()๋ฅผ ์ ์ธํ๊ณ , ํจ์๊ฐ ํธ์ถ๋๋ฉด vue Cli๋ฅผ ์ด์ฉํ๋ ๊ฒ์ฒ๋ผ router๋ฅผ ์ด์ฉํด์ /pages/cart.vue๋ก ์ด๋ํ ์ ์๊ฒ ํด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค์ ์์ ๊ฐ์ด /pages Package ๋ฐ์ cart.vue๋ฅผ ๋ง๋ค์ด ์ฃผ์๊ณ , ์๋์ ๊ฐ์ด Page๋ฅผ ๋ง๋ค์ด ์ฃผ์์ต๋๋ค.
์ด๋ ๊ฒ ํ๊ณ ๋๋ฉด ์์ธ Page์ cart์ ๋ํ Button์ด ์๊ฒผ์ ๊ฒ์ด์์.
Add to Cart Button์ ํด๋ฆญํ๊ฒ ๋๋ฉด ์์์ ๋ง๋ Cart Page๋ก ์ด๋ํ๊ฒ ๋ ๊ฑฐ์์!
์ด ์ ์ ๊ณต๋ถ ํด ๋ณด์๋ฏ์ด Nuxt.js๋ ์๋์ผ๋ก Route์ ๋ํ ์ค์ ์ ํด์ฃผ๋ ๊ฒ์ด์์.
์์ ๋ด์ฉ์ ์ฃผ๋ํ๋์ด ๋ฐ๋ก ๊ฑด๋ค์ง ์์์ง๋ง, cart์ ํด๋นํ๋ route๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
๐ฝ Main Page to Move Cart Page
์ด๋ฒ์๋ index.vue ์ฆ, Main Page์์ ์ฅ๋ฐ๊ตฌ๋ Button์ ๋ง๋ค์ด ๋ณด๊ณ , ์คํฌ๋กค์ ์ฌ๋ฆฌ๊ฑด ๋ด๋ฆฌ๊ฑด ์ฌ๋ผ์ง์ง ์๋๋ก ๋ง๋ค์ด ๋ณผ๊ฒ์.
13 ~ 15๋ฒ์งธ ์ค์ ์ฃผ๋ชฉํด ์ฃผ์ธ์.
๋จผ์ div Tag์ Class๋ฅผ cart-wrapper๋ก ์ก์๊ณ , ํด๋น div Tag ๋ฐ์ button Tag๋ฅผ ํตํด Button์ ํ๋ ๋ง๋ค์์ด์.
์ด Button์ Click(@click)ํ๊ฒ ๋๋ฉด Click Event๊ฐ ๋ฐ์ํ๋ฉด์ moveToPage()๋ฅผ ํธ์ถํ๋๋ก ๋ง๋ค์ด ์ฃผ์์ด์.
์ด ๊ณณ์์ 76 ~ 78๋ฒ์งธ ์ค์ ์ฃผ๋ชฉํด ์ฃผ์ธ์.
์ด ๊ณณ์์๋ router๋ฅผ ์ด์ฉํ์ฌ push()๋ฅผ ํตํด /pages/cart.vue๋ก ์ด๋ํ ์ ์๋๋ก route๋ฅผ ์ด์ฉ ํด ์ฃผ์์ด์.
์ฐธ๊ณ ๋ก 13๋ฒ์งธ ์ค div Tag์ Class์ด๋ฆ์ธ cart-wrapper์ Style์ ์์ ๊ฐ์ด ๋ง๋ค์ด ์ฃผ์๋๋ฐ, ์ฌ๊ธฐ์ position์ sticky๋ฅผ ์ ์ธํ๊ฒ ๋๋ฉด ์คํฌ๋กค ์์น๊ฐ ๋ฐ๋์ด๋ ํ๋ฉด์ ๊ณ ์ ๋๊ฒ ํ ์ ์๋ต๋๋ค.
์ ๊ธฐ ์ข ๋ณด์ธ์! ์ค๋ฅธ์ชฝ ์๋์ '์ฅ๋ฐ๊ตฌ๋ ๋ฐ๋ก๊ฐ๊ธฐ' ๋ฒํผ์ด ์๊ฒผ์ด์.
์ด ๋ฒํผ์ ๋๋ฅด๋ฉด ์์ ๊ฐ์ด Cart Page๋ก ์ด๋ํ๊ฒ ๋๋ต๋๋ค.
๐ฝ Vuex
๐ฆ Nuxt์์์ Vuex ์ฌ์ฉ ๋ฐฉ๋ฒ
Cart์ ๊ธฐ๋ฅ์ Add to Cart๋ฅผ ๋๋ฅธ Item์ ๊ฐ๊ณ ์๋ ์ญํ ์ ํ๋๋ก ํด ์ค ๊ฒ์ด์์.
์์ธ ํ์ด์ง์์ id๊ฐ์ผ๋ก ํด๋น Data๋ฅผ ๊ฐ์ง๊ณ ์์๊ธฐ ๋๋ฌธ์ ์์ธ ์กฐํ๊ฐ ๊ฐ๋ฅํ๋ฐ, ๋ ๋ค๋ฅธ Component์์ ํด๋น Data๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด์๋ Store๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํธํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ง์ฝ ์์ ๋ฐฉ๋ฒ ๋ง๊ณ , ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด Add to Cart๋ฅผ ๋๋ ์ ๋, Local Storage (๋ธ๋ผ์ฐ์ Storage)์ ์ ์ฅ์ ํด ์ค ๋ค ๋ค๋ฅธ Page์ ์ง์
ํ์ ๋, ํด๋น Data๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋๋ก ์ฒ๋ฆฌ๋ฅผ ํด ์ค ์๋ ์์ต๋๋ค.
ํ์ง๋ง, ์์ ๋ฐฉ๋ฒ๋ค ์ธ์๋ Java Script Level์์ ์๋ก Data๋ฅผ ๊ณต์ ํ ์ ์๋๋ก ํด ์ฃผ๋ Store๊ฐ ์๊ธฐ ๋๋ฌธ์ Store๋ฅผ ํ๋ฒ ์ด์ฉํด ๋ณผ ๊ฒ์ด์์.
Nuxt.js์ Store ์ฆ, Vuex์ ๋ํ ์์ธํ ์ค๋ช
์ '์ด ๊ณณ'์ ๋จ๊ฒจ ๋๋๋ก ํ ๊ฒ์!
๐ฆ Vuex ์ฌ์ฉํด๋ณด๊ธฐ
[Vue.js & Nuxt.js]Vuex๋? ์์ ๊ณต๋ถ ํ๋ฏ์ด Nuxt.js์์๋ store Package ๋ฐ์ ~~.js File๋ง ๋ง๋ค์ด์ฃผ๋ฉด .nuxt Package ๋ฐ์ store.js๊ฐ ์๋์ผ๋ก ๋ง๋ค์ด์ง๊ณ , Vue.js์์๋ ์๋์ผ๋ก ํด์ฃผ์ด์ผ ํ๋ ์์
๋ค์ ์๋์ผ๋ก ํด์ฃผ๋ ๊ฒ์ ์ ์ ์๋ ๊ฒ์ด์์.
๋ณธ๊ฒฉ์ ์ผ๋ก Vuex๋ฅผ ํตํด Cart ๊ธฐ๋ฅ์ ๊ตฌํํด ๋ณผ๊ฒ์.
state๋ Vuex์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ ์ค ํ๋์ธ๋ฐ, ๊ฐ๊ฐ์ Component๋ค ์์๋ data()๊ฐ ์๋ค๋ ๊ฒ์ ๋ชจ๋ ์์ค ๊ฑฐ์์. ๊ทธ data()๊ฐ ์ฌ๋ฌ Component๋ค๊ณผ Data๋ฅผ ๊ณต์ ํด์ผ ๋ ๋, Vuex๊ฐ ์ ๊ณตํ๋ state๋ฅผ ์ด์ฉํ๋ฉด ๋๋ ๊ฒ์ด์์.
์์ Code๋ state๋ฅผ ํ์ดํ ํจ์๋ก ๋ง๋ค๊ณ , ๋ฐ๋ก ๋ฐํ์ ํด ์ฃผ๋๋ฐ, cartItems๋ผ๋ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋๋ก ํด ์ค ๊ฒ์ด์์.
์์ ๊ฐ์ด ํ ๋ค main page์์ Vue devtool์ ํตํด Vuex๋ฅผ ํ์ธํด ๋ณด๋ฉด ์ค๋ฅธ์ชฝ๊ณผ ๊ฐ์ด state ์์ cartItems ๋ฐฐ์ด ๊ฐ์ฒด๊ฐ ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
๐ฆ ์์ธ Page์ ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ๊ธฐ๋ฅ ๊ตฌํ
์ด๋ฒ์๋ mutations๋ผ๋ ์น๊ตฌ์ ํจ๊ป ๋์๋ณผ ๊ฒ์ด์์.
์ด ์น๊ตฌ๋ state์ ๊ฐ์ ๋ณ๊ฒฝํ ๋ ๊ฐ์ด ๋ ์ ์๋ ์น๊ตฌ์์.
mutations๋ฅผ ํตํด 10๋ฒ์งธ ์ค์ addCartItem()์ด๋ผ๋ ํจ์๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ , ๋งค๊ฐ ๋ณ์๋ก state์ cartItem์ ์ ๋ฌ๋ฐ๊ฒ ํ ๋ค 11๋ฒ์งธ ์ถ์ state์์ cartItems๋ผ๋ ๋ฐฐ์ด ๊ฐ์ฒด ์์ ๊ฐ์ ๋ฃ๊ธฐ ์ํด push()๋ฅผ ํธ์ถํ๊ณ , ๊ทธ ๋ ๋งค๊ฐ ๋ณ์๋ก ์
๋ ฅํ Data (์ฌ๊ธฐ์๋ cartItem)์ ์ ๋ฌํจ์ผ๋ก state์์ ์ ์ธ๋ cartItems[] ์์ Data๊ฐ ์์ผ ์ ์๋๋ก ํด ์ค ๊ฒ์ด์์.
์ด์ ํด๋น Vuex๋ฅผ ์ด์ฉํ Cart Button์ด ์๋ /pages/detail/_id.vue ํํ
๊ฐ ๋ณผ๊ฒ์!
/store/index.js๋ฅผ ๋ง๋๋ ์๊ฐ ๋จ์ํ Library์ ์ค์น ๋ฐ ์ค์ ํ๋ Code๋ง ์์ฑํด ์ฃผ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ, ๊ฐ์ฒด(์ธ์คํด์ค) ๋ด๋ถ์ ์ผ๋ก ์ฐ๊ฒฐ์ ํด ์ฃผ๊ธฐ ๋๋ฌธ์ ์ Code๊ณผ ๊ฐ์ด this๋ฅผ ํตํด $store์ commit()์ด๋ผ๋ ๊ฒ์ ๋ฐ๋ก ์ ๊ทผํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ต์ด Add to Cart๋ผ๋ Button์ ํด๋ฆญํ๊ฒ ๋๋ฉด addToCart()๊ฐ ํธ์ถ๋๊ณ , 39๋ฒ์งธ ์ค์ store์ commit()์ด ๋์ํ๊ฒ ๋๋๋ฐ, ์ด๊ฒ์ /store/index.js์ mutations์ addCartItem()์ ํธ์ถํ๊ฒ ๋๊ณ , ์ฅ๋ฐ๊ตฌ๋์ ๋ด์ ๊ฐ์ฒด (this.product)๋ฅผ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌ ํด ์ฃผ๋ ๊ฒ์ด์์.
๊ทธ๋ ๊ฒ ์ฅ๋ฐ๊ตฌ๋์ ๋ฌผ๊ฑด์ ๋ด๊ฒ ๋๋ฉด 41๋ฒ์งธ ์ค์ฒ๋ผ ์ฅ๋ฐ๊ตฌ๋ Page๋ก ์ด๋์ ํ ๊ฒ์ด์์.
์ต์ด ์์ธ ํ์ด์ง์์ Add to Cart Button์ ๋๋ฅด๊ธฐ ์ ๊น์ง๋ ๊ฐ๋ฐ์ ๋๊ตฌ vue devtool์ Vuex ๊ธฐ๋ฅ์์ state ์์ cartItems[]์ ์ด๋ค Data๋ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Add to Cart Button์ ๋๋ฅด๊ฒ ๋๋ฉด ๊ฐ๋ฐ์ ๋๊ตฌ vuedevtool์ Vuex ๊ธฐ๋ฅ์์ state ์ cartItems[]์์ ํ ๊ฐ์ Data๊ฐ ๋ค์ด๊ฐ ๊ฒ์ ํ์ธํ ์ ์๊ณ , Cart Page๋ก ์ด๋๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
๐ฆ ์ฅ๋ฐ๊ตฌ๋ Page์ ์ฅ๋ฐ๊ตฌ๋ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ
์ด๋ฒ์๋ state์ ์ ์ฅํ Data๋ฅผ ๋ถ๋ฌ์ค๋ ๊ธฐ๋ฅ์ ๋ง๋ค์ด์ ์ฅ๋ฐ๊ตฌ๋ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ์ ๋ง๋ค์ด ๋ณผ ๊ฒ์ด์์.
๊ฒฐ๊ตญ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๊ธด ์ ํ ๋ชฉ๋ก์ Cart๋ผ๋ Page์์ ๋ณด์ฌ์ ธ์ผ ํ๋ ๊ฒ์ด์์.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ cart.vue์ ์์ ๊ฐ์ด ์์
์ ํด ์ฃผ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ์ฃผ๋ชฉํด์ผ ํ๋ ๊ณณ์ 6 ~ 19๋ฒ์งธ ์ค ๊น์ง์์. ํ๋ฒ ํ๋ํ๋ ์ดํด๋ณด์์!
7๋ฒ์งธ ์ค์์ ul Tag์์ li Tag๋ก ๋ชฉ๋กํ๊ฐ ๋ ์ ์๋๋ก ํ์ ์ก์ ์ค ๋ค li Tag ์์ v-for๋ฅผ ํตํด ๋ฐ๋ณต์ด ๋๋ฉด์ ์์์ state์ ์ ์ฅํ ๊ฐ์ ํ๋ํ๋ ๊บผ๋ด์ cartItem์ด๋ผ๋ ๋ณ์์ ๋ด๋๋ก ํด ์ฃผ์์ด์.
v-for๋ index ๊ฐ์ด ๊ผญ ๋ค์ด๊ฐ ์ฃผ์ด์ผ ํ๋๋ฐ, ์ด๋ฅผ :key๋ฅผ ํตํด์ cartItem์ id๊ฐ์ผ๋ก ์ก์ ์ฃผ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค img Tag๋ฅผ ํตํด ์ํ ์ฌ์ง์ด ๋์ค๋๋ก ์์
์ ํ๋๋ฐ, :src๋ฅผ ํตํด imageUrl์ ๋ฐ์์ค๋๋ก ํ์ฌ ์ฌ์ง์ด ์ถ๋ ฅ ๋๋๋กํ๊ณ , ์ฌ์ง์ด ์ถ๋ ฅ๋์ง ์์ผ๋ฉด ์ ํ ์ด๋ฆ์ด ์ถ๋ ฅ๋๋๋ก ํด ์ฃผ์์ด์.
๊ทธ๋ฐ ๋ค ๋ ๊ฐ์ p Tag๋ฅผ ํตํด ์ ํ ์ด๋ฆ๊ณผ ๊ฐ๊ฒฉ์ด ๋์ฌ ์ ์๋๋ก Code๋ฅผ ์์ฑํด ์ฃผ์์ต๋๋ค.
์ฐจ ํ ๊ตฌ๋งคํ๊ธฐ ๊ธฐ๋ฅ์ ๋ฃ๊ธฐ ์ํด 17 ~ 19๋ฒ์งธ ์ค์ ์์
์ ํด ์ฃผ์๋๋ฐ, ๋ฒํผ ํ๋๋ฅผ ๋ง๋ค๊ณ , ํด๋น ๋ฒํผ์ ๊ตฌ๋งคํ๊ธฐ๊ฐ ๋ณด์ด๋๋ก ๋ง๋ค์ด ๋๊ธฐ๋ง ํ์ด์.
์์ ๊ฐ์ด ์์
์ ํด ์ฃผ๊ณ , ์ค์ Cart Page๋ฅผ ๋ณด๋ Cart์ ์ Item์ด ๋ด๊ธฐ๊ณ , ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์์์ด์.
์ฌ๊ธฐ๊น์ง ์์
์ ํ๊ณ ๋์ ์๋ก๊ณ ์นจ์ ํ๊ฒ ๋๋ฉด ์์ฃผ ์ฌ๋ฐ๋ ํ์์ด ๋ฐ์๋๋ ๊ฒ์ ์ ์ ์์ด์.
๋ฐ๋ก Cart์ ๋ด๊ธด Item๋ค์ด ๋ชจ๋ ์ด๊ธฐํ ๋ ๋ฒ๋ฆฌ๋ ํ์์ธ๋ฐ, ์ด ํ์์ ์ด์ ๋ Vuex๋ Java Script ๋จ์์ ๋์ํ๋ Library์ด๊ณ , ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ก ๊ณ ์นจ๋๊ฒ ๋๋ฉด Memory์ ์ฌ๋ผ์ ์๋ Java Script๋ ๋ชจ๋ ์ด๊ธฐํ ๋๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ธ ๊ฒ์ด์์.
์ด๋ฅผ ๊ผญ ์ฐธ๊ณ ํด์ ๋์ค์ ์ด๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๊น์ง ๊ฐ์ด ๊ณต๋ถํด๋ด์!
๐ฆ Cart Page Styling
์ด๋ฒ์๋ ์ฌ์ด๊ฐ๋ ๊ฒธํ์ฌ Styling์ ํด ์ฃผ๋๋ก ํด ๋ณผ๊ฒ์.
๊ฒฐ๊ณผ๋ฅผ ๋จผ์ ๋ง์๋๋ฆฌ๋ฉด ์ด๋ ๊ฒ ๋ณ๊ฒฝ๋๋๋ก Code๋ฅผ ์์ ํด ์ค ๊ฒ์
๋๋ค.
ํด๋น Source Code๋ '์ด ๊ณณ'์์ ๋ณด์ค ์ ์์ต๋๋ค! ์ด ๊ณณ์์ /pages/cart.vue๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์!
ํ ๊ฐ์ง ๋ ์ ๋ฆฌ๋ฅผ ํ์๋ฉด Cart Page์ ์์ ์ฌ์ง๋ค์ด ๋ค๋ฅธ ๊ฒ๋ค์ด ์ฌ๋ผ๊ฐ์ง๋ง ์๋ ์์
์ ํด ์ฃผ๊ธฐ ์ ๊น์ง๋ ๋์ผํ ์ฌ์ง๋ค์ด ์ฌ๋ผ๊ฐ๋ ๋ฌธ์ ๊ฐ ์์์ด์.
์์ mutations์ 12~ 15๋ฒ์งธ ์ค์ ๋ณด๋ฉด addCartItem์ ๋งค๊ฐ ๋ณ์ cartItem์ ๋ด์ฉ์ ๋ชจ๋ ๋ฐ์ imageUrl์ด ์๋ ๊ฒ๋ค์ ๊ทธ๋ฅ ํ๋ฒ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด 13๋ฒ์งธ ์ค์์ ์ฒ๋ฆฌ๊ฐ ๋์ด ๊ทธ๋๋ก ์๋ฌด ์์ ์์ด ์์ํ ๋ณ์ newCartItem์ ๋ด๊ธฐ๋๋ฐ, imageUrl ๋ถ๋ถ๋ง random๊ฐ์ ์ค์ imageUrl์ด ๋ค๋ฅด๊ฒ ๋์ค๋๋ก ํ๊ณ , ๊ทธ๊ฒ์ ์์ํ ๋ณ์ newCartItem์ ๋ด์์ค ๋ค ํด๋น ๋ณ์๋ฅผ state์ cartItems[]์ ๋ด์์ฃผ๋๋ก ํด ์ค ๊ฒ์ด์์.
'Front-End ์์ ์ค > Nuxt.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue+Nuxt.js] Vuex ์๋ก๊ณ ์นจ ์ ์ด๊ธฐํ ๋๋ ๋ฌธ์ ํด๊ฒฐ (0) | 2022.06.06 |
---|---|
[Nuxt.js] NuxtServerInit (0) | 2022.06.06 |
[Vue+Nuxt.js] Nuxt.js๋ฅผ ์ด์ฉํ์ฌ ์ผํ ์ํ ๊ฒ์ UI ๊ฐ๋ฐ (0) | 2022.06.01 |
[Vue+Nuxt.js] Nuxt.js๋ฅผ ์ด์ฉํ์ฌ ์ผํ ์ํ ๋ชฉ๋ก ํ์ด์ง์ ์์ธ ํ์ด์ง ๊ฐ๋ฐ (0) | 2022.05.24 |
[Vue+Nuxt.js] Nuxt.js Data ํธ์ถ ๋ฐฉ์๊ณผ API ์ฐ๋ (0) | 2022.05.22 |