vue-router中的hash和history两种模式的区别

yizhihongxing

在Vue.js中,vue-router是一个非常重要的路由库,它允许我们在单页面应用中管理导航,通过这个库我们可以轻松构建单页面应用。vue-router支持两种路由模式:hash模式和history模式。

Hash模式

hash模式的核心就在于URL中的“#”符号。在hash模式下,当URL发生变化时,页面并没有重新加载,而是触发onhashchange事件。例如,当我们点击链接切换页面时,实际上是改变了URL中的hash值,然后触发路由器中设置好的事件来渲染页面。

hash模式的优点是兼容性好,不需要服务器支持,可以直接通过静态文件访问,不用担心404错误。同时,hash模式也可以用来解决单页面应用中前进后退的问题,我们可以通过监听onhashchange事件来实现。

示例:

//router配置
const router = new VueRouter({
  mode: 'hash',  //路由模式为hash模式
  routes: [
    {
      path: '/home',
      name: 'Home',
      component: Home
    },
    {
      path: '/about',
      name: 'About',
      component: About
    }
  ]
})

History模式

history模式则是将URL中的路径部分作为状态保存下来。在history模式下,当URL发生变化时,页面会重新加载,但是不会向服务器发送请求,而是直接解析浏览器缓存中的文件。

history模式需要后端服务器进行支持,需要后端服务器配置文件来匹配任意的路由,否则服务器会返回404错误。同时,history模式还可以通过History API来进行前进、后退操作。

示例:

//router配置
const router = new VueRouter({
  mode: 'history',  //路由模式为history模式
  routes: [
    {
      path: '/home',
      name: 'Home',
      component: Home
    },
    {
      path: '/about',
      name: 'About',
      component: About
    }
  ]
})

//后端服务器配置
//将所有路径都返回index.html文件
app.get('*', function(req, res){
  res.sendFile(__dirname + '/public/index.html');
});

总的来说,hash模式和history模式各有优缺点,根据实际需求来选择。

参考文献:

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

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

相关文章

  • Javascript MAX_VALUE 属性

    以下是关于JavaScript MAX_VALUE属性的完整攻略。 JavaScript MAX_VALUE属性 JavaScript MAX_VALUE属性是Number对象的一个属性,它表示JavaScript中最大的数值为1.79E+308。MAX_VALUE属性是常量,它不能被修改。 下面是一个使用MAX_VALUE属性的示例: console.lo…

    JavaScript 2023年5月11日
    00
  • js 剪切板的用法(clipboardData.setData)与js match函数介绍

    下面开始介绍“js 剪切板的用法(clipboardData.setData)与js match函数介绍”: js 剪切板的用法(clipboardData.setData) 简介 剪切板(clipboard)是操作系统提供的一种机制,用于临时存储某个程序的数据,以供其他程序使用。在 web 应用中,也可以使用剪切板来实现数据的复制和粘贴。 在 JavaSc…

    JavaScript 2023年6月10日
    00
  • JavaScript日期时间格式化函数分享

    标题:JavaScript日期时间格式化函数分享 JavaScript中提供了一些用于格式化日期时间的函数,下面我们将分步骤讲解如何使用这些函数。 步骤一:获取当前日期时间 const now = new Date(); 步骤二:使用toLocaleDateString()函数格式化日期 const date = now.toLocaleDateString…

    JavaScript 2023年5月27日
    00
  • JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件

    下面是JavaScript高级程序设计阅读笔记(十八)js跨平台的事件的详细攻略: 1. 事件处理程序 事件是指用户或浏览器自身执行的某种动作。JS可以通过事件处理程序来响应这种动作。 1.1 HTML事件处理程序 HTML事件处理程序是在标签中通过指定事件处理代码的方式来处理事件。 例如在HTML中定义一个按钮: <button onclick=&q…

    JavaScript 2023年5月27日
    00
  • JavaScript中常用的数组操作方法总结

    JavaScript中常用的数组操作方法总结 在JavaScript中,数组是一种非常常见的数据类型。本文将对JavaScript中常用的数组操作方法进行总结,方便读者快速掌握和使用。 创建数组 创建一个空数组: var arr = []; 创建一个有元素的数组: var arr = [1, 2, 3]; 数组的基本操作 获取数组长度 使用length属性获…

    JavaScript 2023年5月18日
    00
  • js用Date对象的setDate()函数对日期进行加减操作

    下面是js用Date对象的setDate()函数对日期进行加减操作的完整攻略: 1. setDate()函数简介 setDate()函数是Date对象自带的一个函数,用于设置Date对象所代表的日期中的天数部分。setDate()函数的具体语法是: Date.setDate(dayValue) 其中dayValue是一个数值,代表要设置的天数。当dayVal…

    JavaScript 2023年5月27日
    00
  • js实现的奥运倒计时时钟效果代码

    我来给您介绍一下实现JavaScript奥运倒计时时钟效果的完整攻略。 1.准备工作 在对奥运倒计时时钟效果进行实现之前,我们需要先准备好一些技术和资源: HTML页面 CSS样式文件 JavaScript代码 首先,在HTML页面中,我们需要创建一个div标签,用来作为倒计时时钟显示的容器。可以为这个div添加一个id属性,方便后续的JavaScript代…

    JavaScript 2023年5月27日
    00
  • jQuery实现右侧抽屉式在线客服功能

    下面是详细的“jQuery实现右侧抽屉式在线客服功能”的攻略。 准备工作 引入jQuery库 在HTML页面中需要引入jQuery库,以便进行jQuery代码的编写和执行。可以使用以下代码引入jQuery库: “`html “` HTML结构 在页面中需要添加相应的HTML结构。抽屉式在线客服一般包括两部分,一部分是客服窗口,另一部分是触发按钮。客服窗口…

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