250x250
Notice
Recent Posts
Recent Comments
Link
홍준혁
Vue.js-네스티드 라우터 본문
728x90
네스티드 라우터는 페이지를 이동할 때 최소 2개 이상의 컴포넌트를 화면에 나타낼 수 있다.
네스티드의 뜻을 보면
뭔가 중첩... 음 뜻에서 유추할 수 있듯 네스티드 라우터는 상위 컴포넌트 1개에 하위 컴포넌트 1개를 포함하는 구조로 되어있다.
그림을 보면 대충 어느 식인지 이해가 될 텐데,
네스티드 라우터는 화면을 구성하는 컴포넌트의 양이 적을 때는 유용하지만,
한 번에 더 많은 양의 컴포넌트를 표현하는 데에는 무리가 있다.
무튼 코드로 한번 구현을 해보자.
<!DOCTYPE html>
<html>
<head>
<title>Vue.js Sample</title>
</head>
<body>
<div id="app">
<h1>Vue배우는중</h1>
<router-view></router-view>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.4.3/vue-router.min.js"></script>
<script>
var User = {
template: `
<div>
User Component
<router-view></router-view>
</div>
`,
};
var UserProfile = { template: "<p>User Profile Component</p>" };
var UserPost = { template: "<p>User Post Component</p>" };
//User라는 컴포넌트를 정리
var routes = [
{
path: "/user",
component: User,
children: [
{
path: "posts",
component: UserPost,
},
{
path: "profile",
component: UserProfile,
},
],
},
];
//네스티드 라우팅 정의
var router = new VueRouter({
routes,
});
//뷰 라우터 정의
var app = new Vue({
router,
}).$mount("#app");
</script>
</body>
</html>
실행해보면 아무것도 보이지 않을 것이다.
하지만 주소 마지막에 user을 치면 User Component라는 것이 보일 것이다. 거기에 posts를 붙여서 엔터를 눌러보면
User Component밑에 User Profile Component가 보이는 것을 알 수 있다.
실제 내용을 보면
이런 식으로 보이는 것을 알 수 있다.
이때 기본적인 원리는 전에 설명한 라우터와 크게 다를 것이 없다.
하지만 라우터 안에 또 다른 라우터가 있다는 개념이 추가된 것인데,
routes에 children속성을 보면 routes형식의 코드가 작성되어 있는 것을 알 수 있다.
이런 식으로 코드가 동작한다.
이제 네스티드 라우터 구성 방법을 알아봤는데
아까 한 번에 많은 라우터가 있으면 표시하는데 한계가 있다고 했는데 그 단점을 해결해줄
네임드 뷰를 한번 배워볼 것이다.
다음 시간에 뿅
728x90
'Vue.js' 카테고리의 다른 글
Vue.js-HTTP 통신 (0) | 2020.09.22 |
---|---|
Vue.js-네임드 뷰 (0) | 2020.09.22 |
Vue.js-Router(뷰 라우터) (0) | 2020.09.21 |
Vue.js-하위에서 상위 컴포넌트로 데이터 전달 (0) | 2020.09.21 |
Vue.js 상위-하위 컴포넌트 데이터 전달 (0) | 2020.09.21 |
Comments