ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Nested routes와 push함수
    Vue.js 2022. 7. 25. 13:43

    저번에 /detail/숫자에 따른 각각의 상세페이지를 보여줬는데, 여기서

    /detail/0/author 이렇게 적으면 0번글의 상세페이지의 저자를 보여주고 싶다. 이럴 때, 쓰는게 nested routes이다.

    만드는 방법은 children : {}을 안에 만들면 된다.

    {
        path: '/detail/:id',
        component: Detail,
        children: [
          {
            path: "author",
            component: Author,
          },
          {
            path: "comment",
            component: Comment,
          },
        ]
    },

    이렇게 Detail을 보여주는 컴포넌트 밑으로 children을 적어주고, 거기에 또 path와 component를 적어주면 된다.

    결과적으로, /detail/:id/author ,/detail/:id/comment 가 된다. 여기서 경로를 적을 땐, 상대경로로 /빼고 적어주면 된다.

    그러곤 Detail컴포넌트에 보여주는 author과 comment 컴포넌트이기에

    <div>
        <h4>디테일페이지</h4>
        <h5>{{블로그글[$route.params.id].title}}</h5>
        <p>{{블로그글[$route.params.id].content}}</p>
        <router-view></router-view>
      </div>

    이렇게 detail컴포넌트에 router-view를 써주면 된다.

     

    마지막으로,

    여기 List컴포넌트 페이지에서 제목을 누르면 해당 디테일페이지로 이동하게 하고싶으면,

    <template>
      <div v-for="(a,i) in 블로그글" :key="i">
        <h5 @click="$router.push('/detail/'+i)">{{a.title}}</h5>
        <p>{{a.date}}</p>
      </div>
    </template>

    클릭시 $router 기능을 이용해서 $router.push(경로) 이렇게 적으면 적은 경로로 이동하게 할 수 있다.

     

    여러가지 기능이 있으니까 vue Router에서 찾아쓰자.

    'Vue.js' 카테고리의 다른 글

    ajax로 더보기 버튼만들기  (0) 2022.07.29
    라우터 나머지 기능  (0) 2022.07.26
    router에서 페이지나누기  (0) 2022.07.25
    Router사용하기  (0) 2022.07.21
    blog레이아웃 bootstrap이용  (0) 2022.07.21

    댓글

Designed by Tistory.