vue-router的两种模式的区别

yizhihongxing

Vue Router 是一个官方的 Vue.js 路由管理器,它可以将组件与标识符映射为路由,然后将其传递给 Vue.js 实例进行渲染,在 Vue Router 中主要有两种路由模式:hash 模式和 history 模式。

hash 模式

hash 模式就是将路由信息放在 url 中的 hash (#)中,这种模式下的 url 格式为:

http://localhost:8080/#/home

在 Vue Router 中使用 hash 模式的代码如下:

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

使用 hash 模式时,路由的变化不会导致浏览器向服务器发送请求,因为 hash 符号后面的内容是由浏览器自行解析的。并且 hash 模式下还可以根据 hashchange 事件进行路由的监听和切换。

history 模式

history 模式是使用 HTML5 的 history API 来实现 URI 与页面内容的映射关系,使用这种方式时,url 格式为:

http://localhost:8080/home

在 Vue Router 中使用 history 模式的代码如下:

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

相较于 hash 模式,history 模式更加简洁美观,但是要在服务器中进行相应的配置,否则在正常访问中会出现 404 错误,同时支持 history 模式的浏览器也有限。

示例:

在 hash 模式下,当我们从 /home 跳转到 /about 时,url 格式为:http://localhost:8080/#/about;而在 history 模式下,url 格式为:http://localhost:8080/about

// hash 模式下的代码示例
const router = new VueRouter({
    mode: 'hash',
    routes: [
      {
        path: '/home',
        name: 'home',
        component: Home
      },
      {
        path: '/about',
        name: 'about',
        component: About
      }
    ]
})

// history 模式下的代码示例
const router = new VueRouter({
    mode: 'history',
    routes: [
      {
        path: '/home',
        name: 'home',
        component: Home
      },
      {
        path: '/about',
        name: 'about',
        component: About
      }
    ]
})

总而言之,Vue Router 中的两种路由模式各有优缺点,我们可以根据具体业务场景来选择。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-router的两种模式的区别 - Python技术站

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

相关文章

  • 原生js实现电子时钟

    接下来我将为你讲解如何使用原生js实现电子时钟。 基本思路 使用原生js实现电子时钟的基本思路如下: 获取当前的时间,包括小时、分钟、秒钟; 将时间转换为字符串,并按照“hh:mm:ss”的格式显示出来; 每隔一秒钟刷新一次时间。 具体步骤 下面将介绍具体的实现步骤。 1. 获取当前的时间 使用js内置对象Date可以获取到当前的时间,其中包括年、月、日、小…

    JavaScript 2023年5月27日
    00
  • 学习JavaScript设计模式之状态模式

    以下是详细的攻略: 学习JavaScript设计模式之状态模式 状态模式是什么? 状态模式是一种行为型设计模式,它允许对象在其内部状态更改时更改其行为。这个模式的主要想法是通过创建有限状态机来满足状态相关行为的需要。 状态模式的优点? 优化大型、复杂代码的结构。 减少了 if 语句的使用,使得代码更加简洁。 更好的可扩展性,可以方便地增加、删除或修改状态,而…

    JavaScript 2023年5月28日
    00
  • jQuery插件windowScroll实现单屏滚动特效

    下面就对”jQuery插件windowScroll实现单屏滚动特效”进行详细讲解。 什么是jQuery插件windowScroll jQuery插件windowScroll是一款jQuery插件,它可以帮助我们实现网页的单屏滚动特效。单屏滚动特效是指网页按照一个固定的高度分成若干个屏幕,在滚动滑轮时网页会逐一切换,同时每个屏幕又各自有不同的过渡效果和动画特效…

    JavaScript 2023年6月11日
    00
  • Javascript Date toSource() 方法

    以下是关于JavaScript Date对象的toSource()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toSource()方法 JavaScript的Date对象没有toSource()方法。toSource()方法是Array、Object和Function对象的方法,用于返回一个表示对象源代码的字符串。 下面是使用对象…

    JavaScript 2023年5月11日
    00
  • 微信小程序开发之改变data中数组或对象的某一属性值

    下面是详细讲解微信小程序开发中改变 data 中数组或对象的某一属性值的完整攻略。 前置知识 在深入讲解如何改变 data 中数组或对象的某一属性值之前,我们需要先了解微信小程序中 data 的用法。在微信小程序中,通过给 Page() 函数传入一个对象,该对象中的 data 属性就是页面的初始数据。 定义 data 对象后,开发者可以通过 this.dat…

    JavaScript 2023年6月10日
    00
  • 最流行的Node.js精简型和全栈型开发框架介绍

    介绍 Node.js 是一个非常流行的 Javascript 运行环境,可以用于编写服务器端的 Javascript 应用程序。Node.js 技术生态圈非常活跃,有大量的优秀开发框架,方便开发人员快速构建 Web 应用程序。 在 Node.js 的开发框架领域,有两种常见的类型:精简型和全栈型。精简型框架提供了基础的功能,开发者可以根据实际需求自行扩展。全…

    JavaScript 2023年5月19日
    00
  • ASP基础入门第二篇(ASP基础知识)

    那我就来详细讲解一下“ASP基础入门第二篇(ASP基础知识)”的完整攻略吧。 标题一:ASP基础入门第二篇(ASP基础知识) 段落一:什么是ASP? ASP全称为Active Server Pages,是一种动态网页技术。利用ASP技术,可以在网页中嵌入服务器脚本,对用户的输入进行处理,生成动态内容并进行展示。ASP技术可以与多种服务器脚本语言结合使用,例如…

    JavaScript 2023年6月11日
    00
  • Javascript Math acos() 方法

    JavaScript中的Math.acos()方法用于返回一个数的反余弦值,即弧度值。该方法接受一个参数,即要计算反余弦值的数值。以下是关于Math.acos()方法的整攻略,包括两个示例。 JavaScript Math对象的acos()方法 JavaScript Math对象中的acos()方法用于返回一个数的余弦值,即弧度值。该方法接受一个参数,即要计…

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