VueRouterでコンポーネントの切り替え
- 親コンポーネントの中の一部を複数ある子コンポーネントで切り替えたい
前提と質問
初心者ですので見当違いなことを言っていたらすみません。
Vue + VuetifyでSPAの社員管理を行うWebアプリケーションを作るという学習をしています。
画面として一番最初のHome画面以外すべての画面にHomeに戻る同じボタンを配置することになりました。
そこでHome画面から遷移した後にボタンを表示するだけの親コンポーネントで画面にボタンを表示して、その中でそれぞれの画面は子コンポーネントとして画面を切り替えたいと思いました。
調べた結果Vue Routerを使えばできそうだったのですができなかったのでここで質問させていただきます。
<RouterView />に指定のコンポーネントを表示させることは可能でしょうか?
今のままですと画面にはHomeボタン以外なく、子コンポーネントが表示されない状態です。
「/」のパスはHome画面で使用しているのでそれ以外のパスのコンポーネントを<RouterView />のところに表示させたいです。
該当のソースコード
質問用に簡単なものに差し替えてあります。
Home画面から遷移した後に表示する画面用のコンポーネントです。
HTML(Vue)
1<template> 2 <div> 3 <v-row justify="center"> 4 <div> 5 <!-- ここに子コンポーネントを入れて画面表示を切り替えたい --> 6 <RouterView /> 7 </div> 8 </v-row> 9 <v-row> 10 <!-- Homeボタン --> 11 <v-btn size="x-large" color=accent class="ma-16, button" @click="$router.push({ name: 'home' ,query:{id}}, )"> 12 <v-icon icon="mdi-home" /> 13 HOME 14 </v-btn> 15 </v-row> 16 </div> 17</template>
index.js
1import { createRouter, createWebHistory } from 'vue-router' 2import HomeView from '../views/HomeView.vue' 3import Select from '../views/return/SelectReturnBook.vue' 4 5const router = createRouter({ 6 history: createWebHistory(import.meta.env.BASE_URL), 7 routes: [ 8 { 9 path: '/', 10 name: 'home', 11 component: HomeView 12 }, 13 { 14 path: '/parent', 15 name: 'parent', 16 component: () => import('../views/Parent.vue'), 17 children: [ 18 { 19 path: '', 20 component: () => import('../views/Child1.vue') 21 }, 22 { 23 path: 'child2', 24 component: () => import('../views/Child2.vue') 25 } 26 ] 27 }, 28 { 29 path: '/child1, 30 name: 'child1', 31 component: () => import('../views/Child1.vue'), 32 }, 33 34 { 35 path: '/child2', 36 name: 'child2', 37 component: () => import('../views/Child2.vue') 38 } 39 ] 40}) 41 42export default router 43
補足情報(FW/ツールのバージョンなど)
Vue3です

回答1件
あなたの回答
tips
プレビュー