Spec-Zone.ru › Vue Router 3

Мета-поля маршрута

Иногда вам может потребоваться прикрепить произвольную информацию к маршрутам, например, имена переходов, доступ к маршруту и т. д. Это можно сделать с помощью свойства meta, которое принимает объект свойств и доступно в объектах локации маршрута и охранников навигации. Вы можете определить meta свойства следующим образом:

const router = new VueRouter({
  routes: [
    {
      path: '/foo',
      component: Foo,
      children: [
        {
          path: 'bar',
          component: Bar,
          // a meta field
          meta: { requiresAuth: true }
        }
      ]
    }
  ]
})

Итак, как получить доступ к этому meta полю?

Во-первых, каждый объект маршрута в конфигурации routes называется записью маршрута. Записи маршрутов могут быть вложенными. Поэтому, когда маршрут сопоставляется, он может потенциально сопоставляться с более чем одной записью маршрута.

Например, при указанной выше конфигурации маршрута URL /foo/bar будет соответствовать как родительской записи маршрута, так и дочерней записи маршрута.

Все записи маршрутов, соответствующие маршруту, доступны в объекте $route (а также в объектах маршрутов в охранниках навигации) в виде массива $route.matched. Поэтому нам необходимо перебрать $route.matched для проверки мета-полей в записях маршрутов.

Пример использования — проверка мета-поля в глобальном охраннике навигации:

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // this route requires auth, check if logged in
    // if not, redirect to login page.
    if (!auth.loggedIn()) {
      next({
        path: '/login',
        query: { redirect: to.fullPath }
      })
    } else {
      next()
    }
  } else {
    next() // make sure to always call next()!
  }
})

← Охранники навигации Переходы →

© 2013–present Evan You
Licensed under the MIT License.
https://router.vuejs.org/guide/advanced/meta.html

Spec-Zone.ru

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