path-to-regexp Найти регулярное выражение, соответствующее маршруту - PullRequest
0 голосов
/ 01 января 2019

Я добавляю динамические дочерние компоненты во время загрузки страницы.Добавление дочерних маршрутов в OnCreated of parent не приводит к работе страницы при обновлении страницы.

Следовательно, я анализирую шаблоны страниц (как я их знаю, когда загружается страница).

Я сейчас ищу способ узнать маршрут, который соответствует HREF.Vue-js использует path-to-regexp, и мой вопрос очень прост.

Я хочу знать соответствующий компонент

const router = new VueRouter({
  routes: [
    // dynamic segments start with a colon
    { path: '/user/:id', component: User },
    { path: '/foo/bar', component: FooBar },

  ]
})    

// Reverse of this
var matchingComponent = howDoIDothis(/foo/bar) // this should give me the matching 

Мне нужно это, чтобы я мог удалить из пути изатем динамически добавьте дочерний компонент к родительскому.

1 Ответ

0 голосов
/ 01 января 2019

Вам необходимо использовать метод router.getMatchedComponents маршрутизатора Vue .Однако этот метод требует, чтобы ваш маршрутизатор был полностью инициализирован со всеми маршрутами.Иначе нет пути.Vue-router не предоставляет базовые разобранные регулярные выражения, с которыми вы можете сравнить свои href.

Кроме того, то, что вы пытаетесь сделать , не является самым идиоматичным способом выполнения действий.в одностраничных приложениях.Хорошей практикой является объявление всех ваших маршрутов заранее в некотором файле JS, с помощью которого вы должны инициализировать свой маршрутизатор.Разумеется, вы захотите защитить определенные маршруты, для которых вам следует использовать средства защиты маршрутов .

Наконец, когда все ваши маршруты объявлены заранее, это означает, что все компоненты объединены в один в одном.большой файл JS.Чтобы избежать этого, оберните ваш компонент в async обертки, и пакет, такой как Webpack, будет достаточно умен, чтобы разбить пакет на несколько меньших файлов.

...