반응형
vue 라우팅: 올바른 라우팅/프로토콜이 있는 동일한 페이지의 목록-프로토콜 보기
항목 목록과 항목 세부사항을 같은 페이지에 표시하려고 해.목록에서 항목을 클릭하면 해당 항목이 상세 보기에 표시되고 URL이 /items/item_id로 변경되어야 한다.
지금은 이렇게 하고 있지만, 물론 URL은 바뀌지 않는다.
<div>
<items-table :items="items" @OnItemClicked="selectedItem=$event"></items-table>
</div>
<div v-if="selectedItem">
<item-detail :item="selectedItem"></contact-card>
</div>
로 URL을 변경하려고 시도했다.router.push(...)
목록의 항목을 클릭하지만, 이것은 전체 페이지를 다시 로드할 때중첩된 라우터 뷰도 찾아봤지만, 그게 올바른 방법인지, 어떻게 구현해야 하는지 잘 모르겠다.
vue.js에서 같은 페이지에 항목 목록과 항목 세부 정보를 표시하는 가장 좋은 방법은 무엇인가?
상세 뷰에 대해 해당 페이지에서 중첩 경로를 설정할 수 있다.
라우터 구성에서
children
목록 보기 경로로 배열한다.하위 경로 구성에는 동적 경로 매개 변수(이전 경로로 미리 지정됨)가 있어야 한다.:
라우트가 표시될 때 URL에 표시되는 항목 ID를 포함하려면:// router.js export default new VueRouter({ routes: [ { path: '/items', component: () => import('@/views/ListView.vue'), children: [ { path: ':itemId', props: true, component: () => import('@/views/ListDetailView.vue') } ] } ] })
목록 보기 구성 요소에서 를 추가하십시오.이것은 본체와 별개다.
router-view
루트 뷰(예:App.vue
).<div class="list-view"> <items-table :items="items"></items-table> <router-view></router-view> </div>
에서
items-table
구성 요소, 각 항목에 대해 a를 추가하고, 1단계에서 상세 보기의 URL과 일치하는 경로(즉,/items/
+ 항목 ID:<router-link :to="`/items/${item.id}`">{{ item.name }}</router-link>
반응형
'programing' 카테고리의 다른 글
페이지 새로 고침 시 NextJS에서 Redex 상태를 올바르게 수산화하는 방법 (0) | 2022.04.03 |
---|---|
iOS 및 Android용 Resact Native 응용 프로그램에서 인터넷 연결을 확인하는 방법 (0) | 2022.04.03 |
python에서 float를 정수로 변환하는 가장 안전한 방법? (0) | 2022.04.03 |
ESC 키를 누르면 대화 상자 닫기 (0) | 2022.04.03 |
파이톤 대본에 #!(쉐뱅)을 넣어야 하나, 어떤 형식을 취해야 하나? (0) | 2022.04.03 |