VueRouter跳转详解

一、VueRouter跳转方式

VueRouter是一个Vue.js官方提供的路由管理器。它可以通过“路由”将组件映射到URL,实现组件的切换。VueRouter提供了三种方式进行跳转:

  1. 声明式导航
  2. 编程式导航
  3. 命名路由

二、VueRouter跳转方法

1.声明式导航

<!--template-->
<router-link to="/home">Home</router-link>
<!--OR-->
<router-link :to="{ path: '/home' }">Home</router-link>

2.编程式导航

//HTML
<button @click="gotoHome">Home</button>

//JS
methods: {
  gotoHome() {
    this.$router.push('/home');
    //或者
    this.$router.push({ path: '/home' });
  }
}

3.命名路由

<!--template-->
<router-link :to="{ name: 'home' }">Home</router-link>

//JS
const router = new VueRouter({
  routes: [
    {
      path: '/home',
      name: 'home',
      component: Home
    }
  ]
})

三、VueRouter跳转当前页

当你在同一个页面中多次点击同一个路由时,一般情况下Vue-Router不会响应。如果想进行强制跳转,需要采用以下两种方法之一:

  1. 使用$route对象的reload()方法
  2. 在标签中添加:key属性

代码演示:

1.this.$router.go(0);//reload
2.<router-link :to="{ path:'/home',query:{id:1} }" :key="$route.fullPath">Home</router-link>

四、VueRouter跳转原理

VueRouter是实现路由的组件,对它的理解,我们需要对Vue单文件组件有一定的了解,同时VueRouter底层是基于hash和history来实现的。下面是VueRouter的原理示意图:

五、VueRouter跳转之后刷新

在VueRouter中,通过路由跳转的时候,组件是不会被销毁的,而是被缓存起来方便下次使用。有时候我们需要组件被退出后重新渲染,这时候有两种解决方式:

  1. 在$routeChange钩子中调用组件的生命周期
  2. 通过在路由中添加参数,例如时间戳或随机数,来重新渲染组件

代码演示:

1.//JS
created() {
  console.log('create');
  this.init();
},
beforeDestroy() {
  console.log('destroy');
},
beforeRouteEnter(to,from,next){
  next(vm=>{
    // 更新视图组件
    vm.$options.methods.init.call(vm);
  })
},
//HTML
<!--template-->
<div>{{msg}}</div>
2.<!--template-->
<router-link :to="{path:'/home?time='+new Date().getTime()}">Home</router-link>

六、VueRouter跳转很慢

在VueRouter中,当我们频繁跳转路由时,可能会出现页面卡顿的现象。这时候可以通过使用keep-alive组件来缓存已经渲染的组件,达到提高访问速度的目的。

<!--template-->
<keep-alive>
  <router-view :key="$route.path"></router-view>
</keep-alive>

七、VueRouter官方文档

VueRouter官网提供了详细的中英文文档,可以在上面查找到任何需要的信息和教程。官方文档链接:VueRouter

八、VueRouter有哪些组件

VueRouter提供了三个重要的组件,分别是:

  1. router-link:生成一个a标签用于跳转到一个指定的地址。
  2. router-view:路由匹配到的组件将渲染在这个中。
  3. keep-alive:用于缓存已经渲染的组件,节约性能提高访问速度。

九、VueRouter中文文档

VueRouter中文文档提供了对VueRouter实用性很强的介绍和使用方法。链接如下:VueRouter

十、VueRouter路由守卫

路由守卫是VueRouter中一种特殊的操作方式,可以在路由发生变化时对跳转控制进行干预。路由守卫提供了以下三种钩子函数:

  1. 全局守卫
  2. 组件内守卫
  3. 异步路由守卫
//JS
const router = new VueRouter({
  routes: [
    {
      path:'/home',
      component: Home,
      beforeEnter: (to, from, next) => {
        if (localStorage.getItem('login') === 'true') {
          next();
        } else {
          next('/login');
        }
      }
    }
  ]
})

以上是VueRouter的跳转详解,对VueRouter的学习非常重要,在开发过程中是必须掌握的技能之一。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/153758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-15 03:23
下一篇 2024-11-15 03:23

相关推荐

  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25

发表回复

登录后才能评论