본문 바로가기

Vue.Js

[Vue.Js] 11. Vue.Js 네스티드 라우터 & 네임드 뷰 (2)

728x90

이제 네임드 뷰를 만들어 보겠습니다.

 

아래는 전체 예제 코드입니다.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Named</title>
  </head>
  <body>
    <div id="app">
        app area
        <router-view name="header"></router-view>
        <router-view name="body"></router-view>
        <router-view name="footer"></router-view>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js "></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
    <script>
      var Header_component = {
        template: '<div>Header</div>'
      };

      var Body_component = {
        template: '<div>Body</div>'
      };

      var Footer_component = {
        template: '<div>Footer</div>'
      };

      var router = new VueRouter({
        routes: [
          {
            path: '/',
            components: {
              header: Header_component,
              body: Body_component,
              footer: Footer_component
            }     
          }
        ]   
      });

      new Vue({
        router
      }).$mount('#app');

    </script>
  </body>
</html>

 

 

필요한 부분만 보겠습니다.

<div id="app">
    app area
    <router-view name="header"></router-view>
    <router-view name="body"></router-view>
    <router-view name="footer"></router-view>
</div>

<script>
  var Header_component = {
    template: '<div>Header</div>'
  };

  var Body_component = {
    template: '<div>Body</div>'
  };

  var Footer_component = {
    template: '<div>Footer</div>'
  };

  var router = new VueRouter({
    routes: [
      {
        path: '/',
        components: {
          header: Header_component,
          body: Body_component,
          footer: Footer_component
        }     
      }
    ]   
  });

  new Vue({
    router
  }).$mount('#app');

</script>

필요한 부분이 많은데요.

천천히 알아가 봅시다.

 

app에 이름(name)을 지정한 router-view를 둡니다.

header, body, footer 통 3개를 만들고 script의 Vue코드를 보겠습니다.

 

component는 template밖에 없으므로 생략하고

VueRouter쪽에 기존과 다르게 path 지정 후에 component에 (router-view name) : (component name)으로 매칭시켜줍니다.

그리고 실행 시키면 아래와 같이 나옵니다.

 

이를 통해 router-viewdml 이름을 지정하고 그 영역에 특정 component를 구성한 것을 알 수 있습니다.

 

이렇게 구성해두고 내부에 Nested형식으로 만들 수 있고 그 반대도 가능합니다.

 

다음엔 Http통신에 대해 공부하겠습니다.