首页 > 解决方案 > vue路由器路径中的双星号是什么意思?

问题描述

我已经看到一些 vue 路由器配置在路径中包含了这种模式,例如:

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

这是什么意思,与 相比有什么区别path: "*"

标签: vue-router

解决方案


据我了解"*""**"应该具有相同的功能,因为*应该匹配任何东西。我可以从源代码中推断出的唯一区别"*"部分代码有关:"**"

// 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]);

此代码块会将"*"路由移动到末尾,这意味着在匹配通配符路由之前,将首先匹配所有其他已定义的路由。但是,"**"不会移动到末尾,这意味着后面定义的任何路由"**"都不会匹配。


推荐阅读