Vue3中createWebHistory和createWebHashHistory的区别详析

 更新时间:2023年06月01日 11:31:05   作者:weixin_44917334  
这篇文章主要给大家介绍了关于Vue3中createWebHistory和createWebHashHistory区别的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

Vue3 是目前比较流行的前端框架之一,它提供了很多方便的 API 来帮助我们开发高效、可维护的应用程序。在使用 Vue Router 进行路由管理时,我们可以使用 createWebHistory 和 createWebHashHistory 来创建不同类型的路由模式。本文将介绍这两种模式的区别和如何选择合适的模式。

createWebHistory

createWebHistory 是 Vue Router 提供的一种基于浏览器 history API 的路由模式,它使用了 HTML5 中的 history.pushState 和 history.replaceState 方法来实现路由跳转。这种模式可以使得 URL 更加直观,而且不会在 URL 中添加任何特殊字符。例如,我们可以将路由设置为 /home、/about 等等。

使用 createWebHistory 可以通过以下方式创建一个路由:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '@/views/Home.vue'
import About from '@/views/About.vue'

const router = createRouter({
  history: createWebHistory(),
  routes: [
    {
      path: '/home',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      component: About
    }
  ]
})

在使用 createWebHistory 时,需要注意以下几点:

在使用 createWebHistory 时,需要在服务器端进行一些配置。因为使用了 history API,如果直接在浏览器中刷新或直接访问某个路由,服务器将无法识别该路由,并返回 404 错误。因此,需要在服务器端配置,将所有的路由请求都返回首页,再由前端代码进行路由的匹配和处理。

createWebHistory 只支持 HTML5 标准浏览器,对于老版本的浏览器无法使用。

在开发环境下,我们需要将 webpack 的 historyApiFallback 属性设置为 true,以便在开发环境下正常使用路由。

createWebHashHistory

createWebHashHistory 是 Vue Router 提供的一种基于浏览器 URL 的 hash 路由模式,它将路由添加到 URL 中的 hash 中,例如:/#/home、/#/about。这种模式可以避免服务器配置的问题,而且支持所有浏览器。但是,由于 URL 中添加了 hash,因此在搜索引擎的 SEO 优化中存在一些问题。

使用 createWebHashHistory 可以通过以下方式创建一个路由:

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from '@/views/Home.vue'
import About from '@/views/About.vue'
const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {
      path: '/home',
      name: 'home',
      component: Home
    },

补充:Vue使用createWebHistory 页面刷新变成白页 解决

Vue使用createWebHistory 页面刷新变成白页 解决办法

hash模式时,项目的根目录是不变的,而在history模式时,以/开头的嵌套路径会被当做根据经。

所以更改文件webpack.prod.config.js(publicPath从’./‘更改为’/’)即可解决此问题

总结

到此这篇关于Vue3中createWebHistory和createWebHashHistory区别详析的文章就介绍到这了,更多相关createWebHistory和createWebHashHistory区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • uniapp微信小程序webview和h5数据通信代码示例

    uniapp微信小程序webview和h5数据通信代码示例

    这篇文章主要介绍了uniapp微信小程序webview和h5数据通信的相关资料,文章还列出了项目的结构,包括微信小程序和h5端的主要文件和组件,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-01-01
  • Vue2.0 axios前后端登陆拦截器(实例讲解)

    Vue2.0 axios前后端登陆拦截器(实例讲解)

    下面小编就为大家带来一篇Vue2.0 axios前后端登陆拦截器(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Vue实现页面跳转方式及传参方式

    Vue实现页面跳转方式及传参方式

    这篇文章主要介绍了Vue实现页面跳转方式及传参方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue iview的菜单组件Mune 点击不高亮的解决方案

    vue iview的菜单组件Mune 点击不高亮的解决方案

    今天小编就为大家分享一篇vue iview的菜单组件Mune 点击不高亮的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Vue 调用摄像头扫描条码功能实现代码

    Vue 调用摄像头扫描条码功能实现代码

    本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流程,同时,还强调了浏览器兼容性、HTTPS环境、权限问题和性能优化的重要性,感兴趣的朋友一起看看吧
    2025-03-03
  • vue2.x版详解computed和watch的使用

    vue2.x版详解computed和watch的使用

    这篇文章主要介绍了vue2.x版详解computed和watch的使用,文章在基于vue框架的前端项目开发过程中,只要涉及到稍微复杂一点的业务,我们都会用到computed计算属性这个钩子函数,可以用于一些状态的结合处理和缓存的操作
    2022-07-07
  • 详解Vue中过度动画效果应用

    详解Vue中过度动画效果应用

    这篇文章主要介绍了详解Vue中过度动画效果应用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Vue纯前端实现导出excel中的图片与文件超链接

    Vue纯前端实现导出excel中的图片与文件超链接

    这篇文章主要为大家详细介绍了Vue如何纯前端实现导出excel中的图片与文件超链接,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-03-03
  • element plus tree拖动节点交换位置和改变层级问题(解决方案)

    element plus tree拖动节点交换位置和改变层级问题(解决方案)

    图层list里有各种组件,用element plus的tree来渲染,可以把图片等组件到面板里,面板是容器,非容器组件,比如图片、文本等,就不能让其他组件拖进来,这篇文章主要介绍了element plus tree拖动节点交换位置和改变层级问题(解决方案),需要的朋友可以参考下
    2024-04-04
  • Vue+Flask实现图片传输功能

    Vue+Flask实现图片传输功能

    这篇文章主要为大家详细介绍了Vue+Flask实现图片传输功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04

最新评论