Vue编程式导航、重定向

77 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第16天,点击查看活动详情juejin.cn/post/714765…

很多时候小伙伴们都不知道该用$route还是$router,只要记住下面这句话,相信对你在使用路由的时候就会有很大的帮助。

  • $route里存的都是路由的一些数据
  • $router里都是一些方法,它是我们创建出来的路由对象。

编程式导航

  1. 简单来说就是调用方法来切换组件。
  2. 语法如下:
  • 利用$router.push()方法,进行编程式导航跳转,通常都是做一些业务逻辑的时候使用它。
  • 利用$router.replace()方法,也是编程式导航,只是它没有了历史记录。

命名视图

  • 当一个页面有多个路由导航按钮,点击不同按钮,渲染不同的多个组件,这时候就需要用到命名视图。
  • 具体代码如下:

1.png

上面两个<button>是编程式导航,<router-view/>就是出口这里,不同的<router-view/>的位置渲染不同的组件,所以就需要给视图组件添加name属性,然后在做路由配置的时候,component的值就写成为一个对象,不同的name值对应我们想具体渲染的组件,如下图: 2.png 上面的components的属性值leftright路由视图name的属性值。 如果子组件的components对应不同的组件,也可以向上面这样写

重定向

1、 直接加redirect,值为要跳转的路径。

{
path:'/about`,
redirect:'/',
component:About,
}

2、可以设置的它值为一个对象,使用对象的话,就使用name属性

{
path:'/about`,
redirect:{name:'/'},
component:About
}

3、值为一个回调函数,返回一个对象,该函数接收一个参数to。通常在该函数里添加一个判断,return回去的都是一个重定向的地址。

{
path:'/about`,
component:About,
redirect:to =>{ 
   在return之前可以判断token是否正确
   return {name:'/'}},
}

别名

通过alias属性设置别名

{
path:'/a',
component:A组件,
alias'/b',//该方法就是设置别名。地址栏里的a和b路径,都会跳转到A组件
}