Обычный способ - использовать вложенные маршруты. Вот пример из одного из моих проектов:
const router = new Router({
mode: 'history',
base: process.env.BASE_URL,
routes: [
{
path: '/login',
name: 'login',
component: LoginView,
},
{
path: '/admin',
name: 'admin',
component: AdminShell,
children: [
{
path: 'home',
name: 'admin_home',
component: AdminHomeView
},
]
},
],
});
В главном представлении будет только компонент просмотра маршрутизатора, поэтому компонент просмотра входа в систему может отображаться без навигационной панели.
<!-- App -->
<v-app>
<v-content>
<router-view> </router-view>
</v-content>
</v-app>
Оболочка администраторабудет введен в основной вид, и он будет содержать панель навигации, боковую панель и все, что ему нужно.
<!-- Admin shell -->
<v-container fill-height>
<v-toolbar color="blue darken-3" dark app :clipped-left="$vuetify.breakpoint.mdAndUp" fixed>
<v-toolbar-title style="width: 300px" class="ml-0 pl-3">
<v-toolbar-side-icon @click.stop="drawer = !drawer"></v-toolbar-side-icon>
<span class="hidden-sm-and-down">Admin</span>
</v-toolbar-title>
<v-spacer></v-spacer>
<UserInfo></UserInfo>
</v-toolbar>
<!-- Nested route -->
<router-view></router-view>
</v-container>
Затем AdminHomeView будет введен во вложенный вид маршрутизатора в представлении оболочки администратора.