详解vue中路由跳转的几种方式(和$router下路由跳转的那几个方法的区别)

lxf2023-05-07 01:05:18

Vue.js是一款流行的前端JavaScript框架,它提供了多种方式来实现路由跳转。以下是其中几种常见的方式:

  1. 声明式导航

在Vue的模板中,可以使用<router-link>标签来创建链接。该标签会被渲染为一个<a>标签,点击它时,它将导航到指定的路由

<router-link to="/home">Home</router-link>

  1. 编程式导航

在Vue实例中,可以使用$router对象来实现编程式导航,该对象提供了一些方法,如pushreplacego等。

// 导航到指定的路由
this.$router.push('/home')

// 替换当前路由
this.$router.replace('/home')

// 后退一步
this.$router.go(-1)

  1. 路由传参

在声明式导航和编程式导航中,可以通过to属性或方法的第二个参数来传递参数。

<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

this.$router.push({ name: 'user', params: { userId: 123 }})

  1. 命名路由

在Vue路由中,可以给路由配置一个唯一的名称,以方便在模板中使用。

{
  path: '/user/:id',
  name: 'user',
  component: User
}

<router-link :to="{ name: 'user', params: { id: userId }}">User</router-link>

以上是Vue中几种常见的路由跳转方式,通过它们,可以方便地实现路由之间的切换和传参。

===============================================

在Vue.js中,$router是Vue Router插件注入到Vue实例中的路由实例,它提供了几个方法来进行编程式导航,这些方法的区别如下

  1. $router.push(location, onComplete?, onAbort?)

push方法会在浏览器的历史记录中添加一条新的记录,当用户点击浏览器的后退按钮时,可以回退到之前的页面。同时,也可以在push方法中传递一个回调函数,在路由导航完成时执行。

// 导航到指定的路由
this.$router.push('/home')

// 导航到命名路由
this.$router.push({ name: 'user', params: { userId: 123 }})

// 添加回调函数
this.$router.push('/home', () => {
  console.log('路由导航完成')
})

  1. $router.replace(location, onComplete?, onAbort?)

replace方法与push方法类似,也可以用来导航到指定的路由,但它不会在浏览器的历史记录中添加一条新的记录,而是替换当前的记录。当用户点击浏览器的后退按钮时,会跳转到上一个页面而不是当前页面的前一个。

// 替换当前路由
this.$router.replace('/home')

// 替换命名路由
this.$router.replace({ name: 'user', params: { userId: 123 }})

// 添加回调函数
this.$router.replace('/home', () => {
  console.log('路由导航完成')
})

  1. $router.go(n)

go方法用来在浏览器的历史记录中前进或后退指定的步数,参数n可以是正数或负数,正数表示前进,负数表示后退。

// 后退一步
this.$router.go(-1)

// 前进两步
this.$router.go(2)

以上三个方法都是用来进行编程式导航的,但它们的行为略有不同,根据具体的需求选择使用。需要注意的是,在使用这些方法时,需要确保路由实例已经创建并注入到Vue实例中。

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!