2022. 5. 18. 23:35ใ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.
๐ Nuxt Project Created
๐ฝ ์ค์น
๐ฆ Nuxt-app
Nuxt.js ๊ณต์ ๋ฌธ์์๋ ์ด๋ป๊ฒ ์ค์น๋ฅผ ํด์ผ ํ๋์ง ์์ธํ ๋์ ์์ต๋๋ค.
์ฃผ๋ํ๋์ `npm`์ ์ด์ฉํด์ ์ค์น๋ฅผ ํด๋ณด๋ ค๊ณ ํด์!
์ต์ด ์ด๋ ๊ฒ ํ๋ฉด์ด ๋์ค๋ฉด Y๋ฅผ ๋๋ฌ ๋์ด๊ฐ ์ฃผ์ธ์!
๊ทธ๋ฐ ๋ค์ Project ์ด๋ฆ์ ๋ฌด์์ผ๋ก ํ ์ง ๋ฌผ์ด๋ณด๋๋ฐ, Enter๋ฅผ ๋๋ฌ์ฃผ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ต์ด ์์ฑํ Project ์ด๋ฆ์ผ๋ก ์ค์ ์ด ๋ฉ๋๋ค.
๋ค์์ Program Languge๋ฅผ ์ ํ๋ ๋ถ๋ถ์ด ์๋๋ฐ, ์ฃผ๋ํ๋์ `JavaScript`๋ฅผ ์ ํํด์ ์งํ ํด ๋ณด๋ ค ํด์!
์๋ํ๋ฉด ๊ฐ์ํด์ `JavaScript`๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ด์์.
๊ทธ ๋ค์ Package Manager๋ NPM(Node Package Manager)๋ฅผ ์ ํํด์ ์งํ ํด ๋ณผ ๊ฒ์ด์์.
์ด๋ฒ์๋ UI Framework๋ฅผ ์ ํ๋ ๋ถ๋ถ์ธ๋ฐ, ์ต์ด ์๋ฌด๊ฒ๋ ์ ํํ์ง ์๊ณ , None์ผ๋ก ํ์ฌ ์งํ ํด ๋ณผ๊ฒ์.
๊ทธ ๋ค์์ `Nuxt.js`์ Module์ ์ค์ ํ๋ ๋ถ๋ถ์ด์์. ์ด๋ฒ์๋ ์๋ฌด๊ฒ๋ ์ ํํ์ง ์๊ณ , ๋์ด ๊ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
`Linting Tools`๋ `ESlint`์ `Prettier`๋ฅผ ์ด์ฉํด์ ์งํ ํด ๋ณผ ๊ฒ์ด์์.
๊ทธ ๋ค์์๋ `Test Tool`์ ์ ํ๋ ๋ถ๋ถ์ธ๋ฐ, ์ด ๋ถ๋ถ๋ ์ผ๋จ None์ผ๋ก ๋์ด๊ฐ๋๋ก ํ ๊ฒ์ด์์.
์ด๋ฒ์๋ Rendering ๋ฐฉ์์ ์ ํํ๋ ๋ถ๋ถ์ด์์.
Nuxt.js๋ SSR์ ์ํด์ ์ฌ์ฉํ๋ Framework๋ผ๊ณ ์ด์ ๊ธ์์ ๊ณต๋ถ๋ฅผ ํด ๋ณด์๋๋ฐ, `SPA`๋ ์ง์ํ๋ ๋ถ๋ถ์ด ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๊ฒ์ด์์.
์ฃผ๋ํ๋์ ์ฃผ์ ์ ๋ง๊ฒ `Universal(SSR/SSG)`๋ก ๊ณต๋ถ๋ฅผ ํด ๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ฐธ๊ณ ๋ก `SSG`๋ `Static Site Generator`์ ์ฝ์๋ก ์ ์ ์ฌ์ดํธ ์์ฑ๊ธฐ๋ผ๊ณ ๋ณด๋ฉด ๋๋ต๋๋ค.
๊ทธ ๋ค์์๋ `Deployment target`์ ์ง์ ํ๋ ๋ถ๋ถ์ธ๋ฐ, ์ฌ๊ธฐ์๋ `Server(Node.js hosting)`์ ์ ํํด์ ๋์ด๊ฐ ๊ฒ์ด์์.
์ด๋ฒ์๋ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๋ถ๋ถ์ด์์.
๊ฐ์์์๋ `VS Code`๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ `jsconfig.json...`์ ์ ํํด ์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค. ์ด๊ฑธ ์ ํํ๋ฉด VS Code ๋ด์ ์๋ ์์ฑ๋ฑ์ ๊ธฐ๋ฅ ๋ฑ์ด ์ถ๊ฐ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ ๊ฒ์ด์์.
๊ทธ๋ฐ ๋ค์ `CI Tool(Continuous Integration Tool)`์ ์ผ๋จ None์ผ๋ก ์ ํํ๊ณ ๋์ด๊ฐ๋๋ก ํ ๊ฒ์.
Version ๊ด๋ฆฌ๋ ๋น์ฐ Git์ ์ด์ฉํด์ผ ๊ฒ ์ด์.
์ด๋ ๊ฒ ์ค์น๊ฐ ์๋ฃ๋๋ฉด ์ด๋ฐ ํ๋ฉด์ด ๋์ค๋ ๊ฑธ ํ์ธํ ์ ์์ด์.
์์ฃผ ์น์ ํ๊ฒ ์ด๋ป๊ฒ ์ด์ฉํ๋ฉด ๋๋์ง ์ด์ผ๊ธฐ ํด ์ฃผ๊ณ ์๋ ๊ฒ์ด์์.
Project๊ฐ ๋ง๋ค์ด์ง ์์น๋ฅผ ๊ฐ๋ณด๋ ์ด๋ ๊ฒ ์๋ฑ์๊น์ผ(์์์ ๋ฑ ์ ๊น๋ํ๊ณ ์ผ์ค์๊ฒ) ๋ง๋ค์ด ์ค ๊ฒ์ ๋ณผ ์ ์์ด์.
๊ทธ๋ฐ ๋ค์ `num run dev` ๋ช ๋ น์ด๋ฅผ ํตํด ์คํ์ ํ๋ฉด ์ด๋ ๊ฒ ์ ์คํ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ ๊ฒ์ด์์.
Nuxt.js๊ฐ ์ ์คํ ๋๊ณ ์์ด์.
์ด๊ธฐ ์ค์น๋ ํฌ๊ฒ ์ด๋ ต์ง ์๋ค์!
๐ฝ Project Package
๐ฆ structure
์์์ Nuxt.js Project๋ฅผ ์ด๊ธฐ ๊ตฌ์ฑ ์๋ฃํ ๊ฒ์ด์์.
Package ๊ตฌ์กฐ๋ฅผ ํ๋ฒ ์ดํด ๋ณด๋๋ก ํ ๊ฒ์.
๊ฐ์์์๋ ์์ ๊ฐ์ Project ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ฃผ๋ํ๋ ๊ตฌ์กฐ๋ ๋ญ๊ฐ ๋ช ๊ฐ ๋น ์ง๊ฒ ๋ ๊ฒ์ด์์.
์ผ๋จ์ ๊ฐ์์์ ๋์ค๋๊ฒ ๋ ๋ง๊ธฐ ๋๋ฌธ์ ๊ฐ์์์ ๋์ค๋ ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์.
โ .nuxt๋?
- Nuxt.js Build Package์ธ๋ฐ, ์ฝ๊ฒ ๋งํด Build๊ฐ ๋ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ด๊ธฐ๋ ๊ณณ.
- ์ฆ, `npm run dev`์ ๊ฐ์ ๋ช
๋ น์ด๋ฅผ ํตํด Build๋ฅผ ํ๊ณ , ์คํ์ ํ๋ฉด ์์ฑ.
โ assets์ด๋?
- image, CSS, Resource ๋ฑ์ด ๋ด๊ธฐ๋ ๊ณณ.
โ components๋?
- Vue CLI(Command Line Interface), Vue Component๊ฐ ๋ด๊ธฐ๋ ๊ณณ.
โ layouts์ด๋?
- Router๋ฅผ ๊ธฐ์ค์ผ๋ก ํน์ URL์ ์ ๊ทผํ์ ๋ ๋ฟ๋ ค์ง๋ Component ์ฆ, Page Component๊ฐ ๋ฟ๋ ค์ง ๋, ๊ฐ์ฅ ์ต์์ Component ์ฆ, Page Component์ Layout์ ๋ด๋นํ๋ Component๊ฐ ๋ด๊ธฐ๋ ๊ณณ.
โ middleware๋?
- SSR(Server Side Rendering)์ ์งํํ ๋, Server์์ ๋ธ๋ผ์ฐ์ ๋ก ์ด๋ค ํ์ผ๋ค์ ๋๊ธฐ๊ธฐ ์ ์ ํญ์ ์คํ ์ํค๋ ํจ์๊ฐ ๋ด๊ธฐ๋ ๊ณณ.
โ pages๋?
- ํน์ URL์ Mapping ๋์ด ๊ทธ๋ ค์ง Component๋ค์ด ๋ด๊ธฐ๋ ๊ณณ.
โ plugin์ด๋?
- Vue ๊ด๋ จ Plugin์ด ๋ด๊ธฐ๋ ๊ณณ.
โ static์ด๋?
- Build๋ฅผ ํ์ ๋, Server์ `/(root)` ์ฃผ์๋ก ์ฎ๊ธฐ๊ฒ ๋ ์ฆ, ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์ ๊ฒ๋ค์ด ๋ด๊ธฐ๋ ๊ณณ.
โ store๋?
- Vuex์ Store๋ฅผ ์๋ฏธ.
๐ฝ ๋ฉ์ธ ํ์ด์ง ์์ฑ ๋ฐ ๊ฒฐ๊ณผ ํ์ธ
Nuxt.js์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ํ์ผ ๊ธฐ๋ฐ์ ์๋ Route ์์ฑ์ ํด์ค๋ค๋ ๊ฒ์ด๋๋๋ค.
์ต์ด ์์ ๊ฐ์ด `/pages` ๋ฐ์ main.vue๋ฅผ ๋ง๋ค์๊ณ , ์์ ๊ฐ์ด ์
๋ ฅ์ ํด ์ค ๋ค์ ์ ์ฅ์ ํ๋ ์๊ฐ Build๋ฅผ ํด ๋ ์ํ๋ผ๋ฉด Build๊ฐ ๋ค์ ์คํ๋ ๊ฒ์ด์์.
๋ฐ๋ก ์ด๋ฐ์์ผ๋ก ๋ง์ด์์.
์ฃผ์์ฐฝ์ URI๋ก main์ ์ ๋ ฅํด ์ฃผ๋ฉด ์์์ ์ ๋ ฅํ ๊ธ์๊ฐ ๋ณด์ด๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์ด๋ฅผ ๊ฐ๋ฐ์ ๋๊ตฌ์์ Vue devtool์ ํตํด ํ์ธํ๋ฉด `<PagesMain.vue>`๊ฐ ํ์ธ์ด ๋๋๋ฐ, ์ด๋ main.vue๋ผ๋ ํ์ผ์ ์ํด component๊ฐ ์์ฑ์ด ๋๊ณ , Router๊น์ง ์๋์ผ๋ก ์์์ ์ฐ๊ฒฐ๋์๋ค๋ ๊ฒ์ ์ ์ ์๋ ๊ฒ์ด์์.
์ด๊ฒ์ด ๋ฐ๋ก Nuxt.js์ ๊ฐ์ ์ธ ํ์ผ ๊ธฐ๋ฐ์ ์๋ Routing ์์ฑ์ด๋ผ๊ณ ๋ณผ ์ ์๋ ๋ถ๋ถ์ด์์.
์ฃผ๋ํ๋์ ์์ด์ ๋ง๋ค๊ธฐ๋ ํ๋๋ฐ, ์บกํดํ๊ต๋๊ป์๋ `layouts` ๋ฐ์ default.vue๊ฐ ์์์ด์.
์์ `<Nuxt />`๋ผ๋ Tag๋ฅผ ๊ณต๋ถํ๊ธฐ ์ํด์ ์ฌ์ง์ ๋ฃ์ด ๋ดค๋๋ฐ, Nuxt.js ์์ด Vue.js๋ก Front End๋ฅผ ๊ฐ๋ฐํ ๋ ๋ฐ๋ก ์ ๋ถ๋ถ์ `<router-view>`๊ฐ ๋ค์ด๊ฐ๋ ๊ฒ์ด๋๋๋ค.
๊ทธ๋์ URL์ ์ด๋ํ ๋ ๋ง๋ค Page Component๊ฐ ๊ทธ๋ ค์ง๊ณ ์๋ ๊ฒ์ด์์.
๊ฒฐ๊ตญ ์ด์ฉ์๊ฐ ์ ๋ ฅํ๋ URL์ ๋ฐ๋ผ Mapping ๋๋ Component ์ฆ, `pages` ๋ฐ์ ์๋ vue File์ด ์์ `<Nuxt />` Tag์ ๋ค์ด๊ฐ๊ฒ ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ ๊ฒ์ด์์.
๐ฝ ํ์ด์ง ์ปดํฌ๋ํธ ๋น๋ ๊ฒฐ๊ณผ ํ์ธ
๊ทธ๋ ๋ค๋ฉด ๋๋์ฒด ์ด๋ค Logic์ผ๋ก Page๋ฅผ ๋ง๋ค๊ณ , ์ ์ฅํ์๋ง์ Routing์ด ๋ ์ ์๋ ๊ฒ์ผ๊น์?
์ฐ๋ฆฌ๊ฐ ์ ์ฌํ ์ดํด๋ณด์์ผ ํ ์น๊ตฌ๋ ๋ฐ๋ก .nuxt Package์ธ ๊ฒ์ด์์.
์์์๋ ์ธ๊ธํ์ง๋ง, Build๋ฅผ ํ ๋๋ง๋ค ์ด ๊ณณ์ Build ๋ด์ฉ์ด ์์ ๋๋ ๊ฒ์ธ๋ฐ,
์์ ๊ฐ์ด .nuxt Package ์์ ๋ค์ฌ๋ค ๋ณด๋ฉด router.js๋ผ๋ ํ์ผ์ ํ์ธํ ์ ์๋๋ฐ,
2๋ฒ์งธ ์ค์์ Router๋ฅผ ๋ถ๋ฌ์์ 12๋ฒ์งธ ์ค์์ ์ด๊ธฐํ๋ฅผ ํ ๋ค์ 21 ~ 29๋ฒ์งธ๊น์ง `routes` ๋ฐฐ์ด ์์ ๊ฐ์ฒด Type์ผ๋ก ` Router Option`์ด ์ค์ ๋์ด ์๋๋ฐ, `main`์ ๋ํ ๋ด์ฉ์ด ์๋์ผ๋ก ์ถ๊ฐ๊ฐ ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์ด๋ฒ์๋ `pages`๋ฐ์ `product` Package๋ฅผ ํ๋ ๋ง๋ค๊ณ , ๊ทธ ์์ Index.vue๋ฅผ ๋ค์ ๋ง๋ค์ด ๋ณผ๊ฒ์.
์์ ๊ฐ์ด Code๋ฅผ ์ ๋ ฅํ๊ณ , ์ ์ฅํ๋ ์๊ฐ
์์ ๊ฐ์ด 27 ~ 30๋ฒ์งธ ์ค์ ํด๋นํ๋ routes ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
๐ฝ Error Page ์์ฑ
์ด๋ฒ์๋ ์ด์ฉ์๊ฐ ํ์ฌ ๋ฑ๋ก๋ URL ์ด์ธ URL์ ์
๋ ฅํ์ ๋, 404 Not Found Error๋ฅผ ์๋ ค์ค ์ ์๋ Page๋ฅผ ๋ง๋ค์ด ๋ณผ๊ฒ์.
์ผ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ๊ฒ ๋์ค๋๋ก Nuxt.js๊ฐ ์ ๊ณตํ๋ ๊ฒ์ ์ ์ ์์ด์.
์ต์ด `layouts` ๋ฐ์ error.vue๋ฅผ ๋ง๋ค์ด ์ค ๊ฒ์ด์์.
Code๋ ์์ ๊ฐ์ด ๋ฑ๋ก์ ํด ์ฃผ์๊ณ , ์๊น์ ๋ง์ฐฌ๊ฐ์ง๋ก ์๋ URL์ ์ ๋ ฅํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์ฌ์ค ์ฃผ๋ํ๋์ด Vue๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ์ผ ์ง์ฆ๋๋ ๋ถ๋ถ์ด Eslint Error์์.
์ด๋ ๊ฒ Error๊ฐ ๋์๋ ๋ถ๋ค์ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ด์ฉํด ์ฃผ์๋ฉด ๋๊ฒ ์ต๋๋ค.
.eslintrc.js์ 14๋ฒ์งธ ์ค์ ๋ณด๋ฉด rules๊ฐ ์๋๋ฐ, ์ด ๊ณณ์ ์๋ ๋ด์ฉ์ ์ถ๊ฐ ํด ์ฃผ์๋ฉด ๋์.
์ด ๋ด์ฉ์ multi word ์ด๋ฆ์ ๋ํด error๋ผ๋ ์ด๋ฆ์ ๋ฌด์ํ๊ฒ ๋ค๊ณ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
์ด๋ ๊ฒ ํ๊ณ ๋๋ ์ ์์ ์ผ๋ก Error Page๊ฐ ๋์ค๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์๋ error.vue๋ ์ฌ์ค `pages` ๋ฐ์ ์์ด์ผ ๋ ์ ์์ ์ผ๋ก ๋ณด์ด์ง๋ง, ๊ณตํต Component๋ก ์ดํดํ๊ณ , ์ด ๋ด์ฉ์ `layouts`์ ๋ฃ๋๋ค๊ณ ์ดํดํ๋ฉด ๋ ๊ฒ ๊ฐ์์.
์ฆ, error Page๋ Page Component Level ์ด๋ผ๋ ๊ฒ์ ์์๋์ด์ผ ํฉ๋๋ค.
๐ฝ Nuxt Routing Component
localhost 3000 port๋ก main์ผ๋ก Server์ ์ ๊ทผ์ ํ๊ฒ ๋๋ฉด `layouts`์ ์ต์ด Component๊ฐ ๋ฟ๋ ค์ง๊ฒ ๋๊ณ , ๊ทธ๋ฐ ๋ค main์ด๋ผ๋ URI์ Mapping ๋๋ `pages` ๋ฐ์ main.vue๊ฐ Component Level์ pages์ ๋ฟ๋ ค์ง๊ฒ ๋ ๊ฒ์ด์์.
๊ทธ๋ฐ ๋ค์ main.vue์ ์ฐ๋ฆฌ๊ฐ ํ์ํ Component๋ค์ ๋ฑ๋กํด์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ ๊ฒ์ด์์.
๐ฝ Layout Component
์ฃผ๋ํ๋์ `layouts` ๋ฐ์ ์์นํ๋ Component๊ฐ ์์ง ์ ์ดํด๊ฐ ๋์ง ์๋ ๊ฒ์ด์์.
๋๋์ฒด Layout Component๋ ์ธ์ ์ด์ฉํ๋ฉด ์ข์๊น์?
์ต์ด `pages` ๋ฐ์ index.vue File์ ๋ด์ฉ์ ์๋์ ๊ฐ์ด ์์ ํด ์ค๊ฒ์.
๊ทธ๋ฆฌ๊ณ , main, product.vue๋ ๊ฐ์ด ํ๋ฒ ๋ง๋ค๊ณ ์์ ํด ๋ณผ๊ฒ์.
์! ์์ ๊ฐ์ด ๋ง๋ค์ด์ฃผ์๋๋ฐ, ๋ณด๋ฉด ๊ณตํต๋๋ ๋ถ๋ถ๋ค์ด ์๋ค๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์ธ ๊ฐ์ง Componet ๋ชจ๋ <h1> Tag๊ฐ ๋ชจ๋ ๋ค์ด ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์๋๋ฐ, ์ด๋ ๊ฒ ๊ณตํต์ผ๋ก ์ด์ฉ๋๋ ๋ถ๋ถ์ Java์์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ถ๋ฆฌํด์ ์ด์ฉํ๋ฏ์ด ๋ฐ๋ก ๋ถ๋ฆฌํ์ฌ `layouts` ๋ฐ์ ๋ง๋ค๊ณ , Componet๋ฅผ ๋ถ๋ฅด๋ ๋ฐฉ์์ผ๋ก ์ด์ฉํ๋ค๋ผ๊ณ ํฉ๋๋ค.
์์ ๊ฐ์ด defaults.vue์ 3๋ฒ์งธ ์ค์ฒ๋ผ ๊ณตํต Tag๋ฅผ ์ ๋ ฅ ํด ๋ณด์์ด์.
๊ทธ๋ฌ๋๋ ์์ ๊ฐ์ด `Page`๋ผ๋ ๋จ์ด๊ฐ ์์น๋ฅผ ์ด๋ํด๋ ๊ณ์ ๋ณด์ด๋ ๊ฒ์ ํ์ธํ ์ ์์ด์.
์์ ๊ฐ์ด ๋!! eslint Multi word Error๊ฐ ๋๋ฉด ์๋์ ๊ฐ์ด ์์ ์ ํด ์ฃผ์ธ์.
๊ทธ๋ผ ์์ ๊ฐ์ด ์ ์คํ ๋๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ผ์ค๊ฑฐ์์.
์์ 3๋ฒ์งธ ์ค์ route์ ์ ์๋ ์ด๋ฆ์ ๋ถ๋ฌ์ค๋๋ก ํด ๋ณด์์ด์.
routes์ ๋ณด๋ฉด ๊ฐ๊ฐ name ๊ฐ์ฒด๋ก ์ด๋ฆ์ด ์ค์ ๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ, ๋ฐ๋ก ์ด ๋ถ๋ถ์ ๋ถ๋ฌ ๊ฐ๋ ๊ฒ์ด์์.
๐ฝ nuxt-link Tag
vue.js ์์ route link๊ฐ nuxt.js์์๋ nuxt link๋ผ๊ณ ๋์ฒด๋๋ ๊ฒ์ด์์.
์์ ๊ฐ์ด 6~8๋ฒ์งธ ์ค์ <a> Tag์ ๊ฐ์ด ์ด๋์ ํ ์ ์๋ `<NuxtLink>`๋ฅผ ๋ง๋ค์์ด์. `to`์๋ค๊ฐ URI๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ํด๋น Page๋ก ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
<NuxtLink> ๋ Vue.js์์ `<router-link>` ์ ๋์ผํ๋ค๋ ๊ฒ์ ๊ผญ ์์์ผ ํ๋ ๊ฒ์ด์์.
'Front-End ์์ ์ค > Nuxt.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[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 |
[Nuxt.js] ๋น๋๊ธฐ ๋ฐ์ดํฐ ํธ์ถ ๋ฐฉ๋ฒ (0) | 2022.05.22 |
[Vue+Nuxt.js] Nuxt.js ๊ธฐ๋ณธ (0) | 2022.05.17 |