重定向和别名
重命名以及别名使得路由的跳转变得更加灵活
什么是路由重定向?
如果你给 /a
路由设置了重定向路由 /b
,那么当你访问 /a
时,Vue Router 会将 /b
路由下的视图展示出来,将 /a
重定向至 /b
,重定向也是通过 routes 配置来完成。
值得注意的是路由导航守卫 beforeEach
、beforeLeave
不会应用在跳转路由上,而会应用到目标路由上。上述第一个例子中,为 /a
路由设置导航守卫将会失效(因为 /a
是跳转路由),正确的做法是为 /b
路由设置导航守卫。
当我们使用动态路由时,若想要在路由匹配成功时,显示其下的某个子路由视图,可以使用重定向或空路由,代码如下:
重定向和空路由两者择一即可。推荐重定向,因为根据当前浏览器地址栏能更清晰的表现出当前的路由。使用重定向或空路由时,当前路由的 params 不会丢失。
什么是路由别名?
顾名思义,尤雨溪大家也称作尤小右、尤大等,这三个名称都指代的是 Vue.js 的作者。路由别名同样也是,路由别名的配置也是在 routes 中:
有什么区别?
重定向将 /a
路由指向 /b
,无论 /a
路由下有没有视图(组件),页面中的视图容器(<router-view>
)都不会显示,而是会显示 /b
下的视图(组件)。同时浏览器的地址栏显示的是目标路由的路径 /b
,而不会显示 /a
。一个比较形象的图例如下:
路由别名是指, 如果 /b
是 /a
的别名,那么 /a
和 /b
都可以显示到浏览器的地址栏,但是页面中的视图容器(<router-view>
)都显示同一个视图(组件),所以无论以 /a
还是 /b
访问,效果都是一样的。一个较为形象的图例如下:
Last updated