Что означает двойная звездочка в пути маршрутизатора vue?

#vue-router

#vue-маршрутизатор

Вопрос:

Я видел, что некоторые конфигурации маршрутизатора vue включали этот шаблон в path, например:

 {path: "**", component: Xxx}
  

Что это значит и в чем разница по сравнению с path: "*" ?

Ответ №1:

Насколько я понимаю, "*" и "**" должны иметь одинаковую функциональность, поскольку * должны соответствовать чему угодно. Единственное различие между "*" и "**" , которое я могу вывести из исходного кода, относится к этой части кода:

 // ensure wildcard routes are always at the end
for (var i = 0, l = pathList.length; i < l; i  ) {
    if (pathList[i] === '*') {
       pathList.push(pathList.splice(i, 1)[0]);
  

Этот блок кода переместит "*" маршруты в конец, что означает, что все другие маршруты, которые были определены, будут сопоставлены первыми, прежде чем будет сопоставлен маршрут с подстановочным знаком. Однако, "**" не будет перемещен в конец, что означает, что любые маршруты, определенные после "**" , не будут сопоставлены.

Комментарии:

1. Спасибо! Теперь это имеет смысл для меня.