Spec-Zone.ru › Vue Router 3

Именованные представления

Иногда вам нужно отобразить несколько представлений одновременно вместо их вложенности, например, создание макета с sidebar представлением и main представлением. Именно здесь пригодятся именованные представления. Вместо одного единственного выхода в вашем представлении, вы можете иметь несколько и дать каждому из них имя. router-view без имени получит default в качестве своего имени.

<router-view class="view one"></router-view>
<router-view class="view two" name="a"></router-view>
<router-view class="view three" name="b"></router-view>

Представление отображается с помощью компонента, поэтому для одного маршрута требуются несколько компонентов. Убедитесь, что вы используете опцию components (с буквой s):

const router = new VueRouter({
  routes: [
    {
      path: '/',
      components: {
        default: Foo,
        a: Bar,
        b: Baz
      }
    }
  ]
})

Демонстрационный пример этого примера можно найти здесь.

Вложенные именованные представления

Возможно создание сложных макетов с использованием именованных представлений и вложенных представлений. При этом вам также потребуется назначить имена вложенным router-view компонентам. Рассмотрим пример панели настроек:

/settings/emails                                       /settings/profile
+-----------------------------------+                  +------------------------------+
| UserSettings                      |                  | UserSettings                 |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
| | Nav | UserEmailsSubscriptions | |  +------------>  | | Nav | UserProfile        | |
| |     +-------------------------+ |                  | |     +--------------------+ |
| |     |                         | |                  | |     | UserProfilePreview | |
| +-----+-------------------------+ |                  | +-----+--------------------+ |
+-----------------------------------+                  +------------------------------+
  • Nav — это обычный компонент
  • UserSettings — это компонент представления
  • UserEmailsSubscriptions, UserProfile, UserProfilePreview — это вложенные компоненты представления

Примечание: Давайте забудем о том, как HTML/CSS должен выглядеть для представления такого макета, и сосредоточимся на используемых компонентах.

Раздел <template> для компонента UserSettings в вышеупомянутом макете будет выглядеть примерно так:

<!-- UserSettings.vue -->
<div>
  <h1>User Settings</h1>
  <NavBar/>
  <router-view/>
  <router-view name="helper"/>
</div>

Вложенные компоненты представления здесь опущены, но полный исходный код для примера выше можно найти здесь.

Затем вы можете получить вышеуказанный макет с помощью этой конфигурации маршрута:

{
  path: '/settings',
  // You could also have named views at the top
  component: UserSettings,
  children: [{
    path: 'emails',
    component: UserEmailsSubscriptions
  }, {
    path: 'profile',
    components: {
      default: UserProfile,
      helper: UserProfilePreview
    }
  }]
}

Демонстрационный пример этого примера можно найти здесь.

← Именованные маршруты Перенаправление и псевдоним →

© 2013–present Evan You
Licensed under the MIT License.
https://router.vuejs.org/guide/essentials/named-views.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API