Vue + Vuetify + vue-router:根据页面更改工具栏内容

Vue + Vuetify + vue-router: changing toolbar content based on page

Vuetify 有一个非常灵活的布局方案,包括菜单、工具栏、内容和页脚,允许一些漂亮的 material design schemes, e.g. Google Contacts:

考虑一个标准设置,其布局由路由器控制,整个站点具有固定菜单,但动态工具栏会随着显示的页面而变化。根据显示的页面更改工具栏内容的最佳做法是什么?在 Google 联系人示例中,我们只希望搜索栏显示在 Contacts 页面上。

根据我对 Vue 的初步了解,似乎定义了一个 scoped slot 的路由器布局。可能有很多其他 hacky 方法可以实现这一点。但我正在寻找一种干净、模块化的方式来跨页面定义工具栏内容。

想法:

您可以在应用程序中定义多个路由器视图。想象一下您的布局看起来像这样非常简化:

<v-app id="app">
  <router-view name="navigation"></router-view>
  <router-view></router-view>
</v-app>

然后您可以为两个路由器视图定义一个包含组件的路由:

{
  path: '/hello',
  components: {
    default: MyHelloComponent,
    navigation: MyNavigationForHelloComponent
  }
}

Documentation

Working Example from Documentation