728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
- ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ ๋ฐ์ดํฐ ์์์ ๋ง๋ ์์ธ ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ฃผ์๋ค.
๐ ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ ํ์์ฑ ์์๋ณด๊ธฐ
- ์์ธ ํ์ด์ง๋ฅผ ๋ง๋ค๋ ค๋ฉด URL ์ ์ด๋ค ์์ผ๋ก ์์ฑํ๋ฉด ์ข์์ง์ ๋ํ ๊ณ ๋ฏผ์ด ํ์ํ๋ค.
- ๋ณดํต ๋ธ๋ก๊ทธ๋ ์ผํ๋ชฐ๊ฐ์ ์ฌ์ดํธ๋ฅผ ๋ค์ด๊ฐ๋ฉด ์์ธ ํ์ด์ง๋ ๋ณดํต /seoyun/0, /seoyun/1, /seoyun/2 ... ์ด๋ฐ์์ผ๋ก ๋์์ธ๋์ด์๋ค.
- ๊ทธ๋์ ๋ง์ง๋ง ๋ถ๋ถ์ด 0 ์ผ๋ก ๋๋๋ฉด 0 ์ ํด๋นํ๋ ํ์ด์ง๋ฅผ, 1 ๋ก ๋๋๋ฉด 1์ ํด๋นํ๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ธ ๊ฒ์ด๋ค.
const routes = [
{
path: '/detail/0',
component: Detail,
},
{
path: '/detail/1',
component: Detail,
},
{
path: '/detail/2',
component: Detail,
},
];
- ๊ทธ๋ ๋ค๊ณ ์์ ๊ฐ์ด router.js ํ์ผ์ ์์ฑํ ์๋ ์๋ค.
- ์๋ํ๋ฉด, ํ์ํ ํ์ด์ง๊ฐ ๋์ด๋๋ฉด ๋์ด๋ ์๋ก ์ถ๊ฐ๋ก ์์ฑํด์ผ ํ๋ ์ฝ๋๊ฐ ๋ง์์ง๋ฏ๋ก ํ์ฅ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ๋์, ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ์ด ํ์ํ๋ค.
๐ค ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ ์์๋ณด๊ธฐ
const routes = [
{
path: '/detail/:id',
component: Detail,
},
];
- ์์ ๊ฐ์ด path ๋ถ๋ถ์ /detail/ ๋ค์ ๋ถ์ฌ์ง :id ๋ฅผ ํ๋ผ๋ฏธํฐ๋ผ๊ณ ํ๋ค.
- ํ๋ผ๋ฏธํฐ๋ ๋ณดํต ์ฝ๋ก ( : )์ ๋ถ์ฌ ์ด๋ฆ์ง๊ฒ ๋๋ค.
- ์ด๋ ๊ฒ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด ์ด์ ์ฃผ์์ฐฝ์ /detail/ ๋ค์ ์ด๋ค ๊ฒ์ ์์ฑํด๋ Detail.vue ํ์ผ์ ๋ณด์ฌ์ฃผ๊ฒ ๋๋ค.
- ๋ค๋ง, ๋ฌธ์ ๋ /detail/0, /detail/1 ... ๊ณผ ๊ฐ์ด ์ ์ด๋ ๊ฐ ๋ฒํธ์ ๋ง๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ ์๋๋ผ ๋๊ฐ์ ๋ด์ฉ๋ง ๋ณผ ์ ์๋ค.
- ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด, ๋ณด์ฌ์ค ํ์ผ์์ $route ๋ฅผ ์ถ๋ ฅํด๋ณด๋ฉด ๊ฐ์ด ์กํ๋ค.
- /detail/1 ์ ์ ์ํ์ฌ $route ๋ฅผ ์ถ๋ ฅํด๋ณด๋ ์์ ๊ฐ์ด "params" ์ id ๊ฐ 1๋ก ์ ๋ค์ด์์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
- ์ฆ, $route.params.id ๋ฅผ ํ์ฉํ๋ฉด ๊ฐ ๋ฒํธ์ ๋ง๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
๐ค ํ๋ผ๋ฏธํฐ ๋ฌธ๋ฒ ์ฌ์ฉํ๊ธฐ
<template>
<div class="container mt-4">
<h4>์์ธ ํ์ด์ง</h4>
<h5>{{posts[$route.params.id].title}}</h5>
<p>{{posts[$route.params.id].content}}</p>
<p>{{posts[$route.params.id].date}}</p>
</div>
</template>
- ๋ฐ๋ผ์ ์์ ๊ฐ์ด Detail.vue ํ์ผ์ ์ฝ๋๋ฅผ ์์ ํด์ฃผ์๋ค.
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > Vue.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] Instagram ํ๋ก์ ํธ ์์ฑํ๊ธฐ ๋ฐ ๋ฐ์ดํฐ๋ฐ์ธ๋ฉํ๊ธฐ (0) | 2022.04.06 |
---|---|
[Vue.js] Nested routes ์ push ํจ์ ์ฌ์ฉํด๋ณด๊ธฐ (0) | 2022.04.05 |
[Vue.js] vue-router ์ค์น ํ ๋ผ์ฐํ ํ๊ธฐ (0) | 2022.04.05 |
[Vue.js] ๋ฐ์ดํฐ๋ฐ์ธ๋ฉ์ ํตํด ๋ธ๋ก๊ทธ ๊ธ๋ชฉ๋ก ๋ง๋ค๊ธฐ (0) | 2022.04.05 |
[Vue.js] Blog ํ๋ก์ ํธ ์์ฑํ๊ธฐ ๋ฐ Bootstrap ์ฌ์ฉํ๊ธฐ (0) | 2022.04.05 |