์ ํ์ ๋ณด ํ์ด์ง๋ฅผ ๋ง๋๋ ์ค์ด๋ค.
<NavTop> ์ปดํฌ๋ํธ ์์
router-link :to="/guide/notice"
router-link :to="/guide/qna" ๋ฑ์ ๋งํฌ๋ฅผ ๊ฑธ์ด๋์ผ๋ฉด
Guide๋ผ๋ ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋๋ฐ
Guide ๋ผ๋ ์ปดํฌ๋ํธ ์์ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ค์ import ํด๋๊ณ $router.params์ ๊ฐ์ ์ฝ์ด ํ๋จ ์์ญ์ ์ถ๋ ฅํ๊ฒ ๋๋ค.
์ฒ์์ div ํ๊ทธ์ v-if๋ฅผ ๊ฑธ์ด์ $router.params.board === "notice" ์์ผ๋ก ์กฐ๊ฑด๋ฌธ์ ๊ฑธ์ด์ผ ํ๋.
์กฐ๊ฑด๋ฌธ์ ํจ์๋ก ๋ง๋ค์ด์ผ ํ๋ ํ๋ค๊ฐ ์์ฒญ ์ฌํํ ๋ฐฉ๋ฒ์ ์ฐพ๊ฒ๋๋ค.
1. data()์ ๋ณ์ ์ ์ธ
- selectedComponent๋ $router.params.board ๊ฐ์ด ์์ผ๋ฉด ๊ทธ ๊ฐ์ด set ๋๊ณ , ์๋๋ผ๋ฉด ๋ณด์ฌ์ค default ์ปดํฌ๋ํธ ๋ช ์ ์ ์ด์ค๋ค.
import Application from "./EntranceBoard/ApplicationGuideline.vue";
import Faq from "./EntranceBoard/FAQ.vue";
import Notice from "./EntranceBoard/NoticeBoard.vue";
import Qna from "./EntranceBoard/QnA.vue";
export default {
name: "EntranceBoard",
data() {
return {
selectedComponent: this.$route.params.board
? this.$route.params.board
: "Notice",
};
},
components: {
Application,
Faq,
Notice,
Qna,
},
2. ์ปดํฌ๋ํธ๊ฐ ์ถ๋ ฅ๋ div ์์ญ์ ์๋์ ๊ฐ์ด ์ ์ธ
- ๋ผ์ฐํฐ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก set๋ selectedComponent ๊ฐ์ ๋ฐ๋ผ ํ๋ฉด์ ์ถ๋ ฅ๋๋ ์ปดํฌ๋ํธ๊ฐ ๊ฒฐ์ ๋๋ค.
<component :is="selectedComponent"/>
๋๊ธ