Vue Router路由hash模式与history模式详细介绍

yizhihongxing

Vue Router路由hash模式与history模式详细介绍

在Vue.js中,Vue Router是一个常用的路由管理器。Vue Router可以实现单页应用(SPA)的路由功能。在Vue Router中,有两种路由模式:hash模式和history模式。在本文中,我们将详细介绍这两种模式的区别和使用方法。

hash模式

hash模式是Vue Router的默认模式,在URL中使用“#”作为路由路径的锚点标记,不会触发页面的刷新,也不会向服务器发送请求。通过监听URL的变化,从而实现页面的路由切换。在Vue Router中,我们可以通过配置路由的mode参数来设置使用hash模式。

配置方法

const router = new VueRouter({
  mode: 'hash',
  routes: [...]
})

示例

假设我们有两个路由,一个是首页(/),一个是关于我们(/about)。

// main.js
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'

Vue.config.productionTip = false

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    component: Home
  },
  {
    path: '/about',
    component: About
  }
]

const router = new VueRouter({
  mode: 'hash',
  routes
})

new Vue({
  render: h => h(App),
  router
}).$mount('#app')

现在我们在App.vue中添加路由跳转的链接:

<template>
  <div>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view></router-view>
  </div>
</template>

在浏览器中输入localhost:8080/#/,可以看到页面显示为Home。点击About的链接,页面会跳转到localhost:8080/#/about,显示为About。

history模式

history模式使用浏览器的history API来实现路由功能,将页面路由信息保存在浏览器的history栈中,可以使用前进、后退按钮切换路由,也可以通过URL直接访问页面。

配置方法

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

需要注意的是,使用history模式需要服务器端支持,否则会出现404错误。如果要在开发环境中使用history模式,可以使用vue-cli提供的history模式的dev server。启动dev server的方法如下:

npm run dev -- --history

示例

假设我们有两个路由,一个是首页(/),一个是关于我们(/about)。

// main.js
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'

Vue.config.productionTip = false

Vue.use(VueRouter)

const routes = [
  {
    path: '/',
    component: Home
  },
  {
    path: '/about',
    component: About
  }
]

const router = new VueRouter({
  mode: 'history',
  routes
})

new Vue({
  render: h => h(App),
  router
}).$mount('#app')

现在我们在App.vue中添加路由跳转的链接:

<template>
  <div>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view></router-view>
  </div>
</template>

在浏览器中输入localhost:8080,可以看到页面显示为Home。点击About的链接,页面会跳转到localhost:8080/about,显示为About。

以上是Vue Router路由hash模式与history模式的详细介绍。通过本文的学习,相信你已经掌握了这两种路由模式的使用方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue Router路由hash模式与history模式详细介绍 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 原生javascript模仿win8等待提示圆圈进度条

    让我来详细讲解一下“原生javascript模仿win8等待提示圆圈进度条”的完整攻略。 1. 初始HTML结构 首先,在HTML中定义一个div容器作为等待提示圆圈进度条的载体,如下所示: <div id="spinner"></div> 2. CSS样式 接着,我们需要定义CSS样式来实现圆形线条的旋转动画效果…

    JavaScript 2023年6月11日
    00
  • js get和post请求实现代码解析

    让我们来详细讲解一下“JS get和post请求实现代码解析”的完整攻略吧。 内容概述 本攻略将会分为以下几个部分: JS Get请求实现代码解析 JS Post请求实现代码解析 Get和Post的异同点 JS Get请求实现代码解析 在JS中,我们可以通过XMLHttpRequest对象来实现get请求,具体步骤如下: 创建XMLHttpRequest对象…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript原型对象的this指向问题

    下面我将详细讲解“详解JavaScript原型对象的this指向问题”的完整攻略。 原型对象的this指向问题 在JavaScript中,this代表的是函数的执行上下文。而原型对象的this指向则与常规函数的this指向有所不同,需要特别注意。 常规函数中的this指向 在常规函数中,this代表的是所属的对象。例如: const person = { n…

    JavaScript 2023年6月10日
    00
  • js chrome浏览器判断代码

    针对“js chrome浏览器判断代码”的完整攻略,以下是一份详细的解释: 1. 为什么需要JavaScript判断浏览器? 在Web开发中,不同的浏览器可能会对同样的代码产生不同的结果,甚至可能会造成部分功能无法使用,因此在开发过程中,我们需要根据用户所使用的浏览器类型进行代码适配,确保在不同的浏览器下都有良好的用户体验。而JavaScript作为一种运行…

    JavaScript 2023年6月11日
    00
  • JavaScript中使用Object.create()创建对象介绍

    下面是详细讲解“JavaScript中使用Object.create()创建对象”的完整攻略。 1. Object.create()是什么? Object.create()是JavaScript中创建新对象的一种方法。它返回一个新对象,并将该对象的原型设置为指定的对象。具体来说,Object.create()接收一个参数,即作为新对象原型的对象。从该对象中继…

    JavaScript 2023年5月27日
    00
  • JavaScript之Object类型介绍

    下面是关于JavaScript之Object类型介绍的详细讲解。 1. 什么是Object类型 Object类型是JavaScript中最基础的一个类型,也是所有其他类型的基础。对象是由一组无序的键值对组成的集合。每个键值对称作对象的一个属性,键名是一个字符串(比如”age”),键值可以是任意数据类型,包括其他对象。 对象可以通过两种方式来创建:使用Obje…

    JavaScript 2023年5月27日
    00
  • js bind 函数 使用闭包保存执行上下文

    js中bind函数是一个非常常用的函数,它可以改变函数的上下文(this),常常用于一些特殊情况,如在事件处理函数中改变this指向。在使用bind函数的时候,为了保证绑定的上下文在函数执行时正确,使用闭包保存执行上下文是一个非常好的选择,本攻略将详细讲解如何使用闭包保存执行上下文。 什么是bind函数? bind函数是js中常用的一个函数,可以修改函数的上…

    JavaScript 2023年6月10日
    00
  • JS实现的多张图片轮流播放幻灯片效果

    下面是 JS 实现多张图片轮流播放幻灯片效果的完整攻略: 确定需求 在实现多张图片轮流播放幻灯片效果前,我们需要明确一些需求: 显示多张图片:需要将多张图片放在同一个容器中,用于轮流播放; 轮流播放图片:需要编写 JS 代码实现轮流播放多张图片的逻辑; 显示切换控制按钮:为了方便用户手动控制图片切换,可以添加切换控制按钮; 自动轮播:为了提升用户体验,可以设…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部