路由跳转问题

251 阅读2分钟

路由:

在跳转路由中总是会遇到各种各样的问题:

  • 比如在router中想要遍历全部的路径,
  • 我们便会用到routeradd来添加组件中的路由
  • 但是我们这时候打印台就会出现这样

No match found for location with path “/“

1.我们在路由命名时很容易就会重复导致跳转路由跳转不通

比如在开发中这样:

...
{
    path:"/home",
    name:home,
     component:"@/views/home"
}
...

像这样就会使路由跳转失败

2.在路径中没有添加“/”导致路由跳转不了

...
    {
    path:"home",
    name:home
    component:"@/views/home"
   } 

3.查看hash模式还是history模式

  • 在hash模式时看一下前面的路由是否是带“#”,如果该路由没有携带参数啥的就是因为它需要添加“#”来进行跳转
  • 在history模式下不需要添加“#”,请注意看一下自己设置的是什么模式

4.查看vue组件中是否含有 Routerview,拥有跳转能力才可以跳转

<Routerview></Routerview>

5.在组件中编写时跳转的分页时(主要是路由拦截时)

  • 分支路径必须是主页面的路径,要不然不会跳转并且页面不会显示任何东西。
  • 记住路径不需要前缀。

路由守卫、拦截

  • 在路由守卫中next、to等调试起来还挺难的,先来看看成功的案例

屏幕截图 2023-03-17 215225.png

在图中比较容易出现的问题就是:

  1. 比较容易写错相近英文,比如在图中isGetterRouter与changeGetterRouter搞错位置,找了半天才发现
  2. 在if中添加else,由于层级太多写错层级,导致报错
  3. store.state.isGetterRouter中未添加!,导致路由一直在循环,跳不出来
  4. 同理上面那个也是如此
  5. 在最后else中,一定要写next()

补充一点:

在button中在编写token在本地中测试时,一定要检查一下中没有写名,不会报相关的错,但是路由也是不会跳转的