当前位置: 首页 > news >正文

hash模式和history模式

在Vue Router中,有两种路由模式可供选择:hash模式和history模式。它们各自有一些优点和缺点,下面是它们的简要介绍:

  • hash模式的原理是通过hashchange事件,通过监听hash变化来驱动界面变化。它的url中有 # 号

  •   1、监听地址栏中hash变化驱动界面变化2、用pushsate记录浏览器的历史,驱动界面发送变化
    
  • history模式的原理是通过popstate事件,通过监听浏览器历史记录变化来驱动界面变化。
    需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。

  • 只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())它的url中没有 # 号

  • 项目上线之后,需要在后端服务器额外配置,否则会出现404错误

  •  history 模式核心借用 HTML5 history api,api 提供了丰富的 router 相关属性先了解一个几个相关的 apipushState 向浏览器历史纪录添加记录replaceState修改浏览器历史纪录中当前纪录popState 事件, 当 history 发生变化时触发
    

Hash模式:

优点:

  • 兼容性好:Hash模式使用URL中的哈希值(#)来模拟路由,不会触发页面的刷新,因此在各种浏览器和服务器环境下都能正常工作。
  • 简单配置:不需要服务器端的特殊配置,只需在前端配置即可。

缺点:

  • URL不美观:由于使用哈希值,URL中会出现#符号,对于用户来说不够友好。
  • 有一定冗余:每次路由切换时,URL中的哈希值会发生变化,但页面不会刷新,这可能会导致一些冗余的哈希值出现在URL中。

History模式:

优点:

  • URL美观:History模式使用真实的URL路径,没有#符号,对于用户来说更加友好。
  • 无冗余:每次路由切换时,URL路径会发生变化,但页面不会刷新,不会出现冗余的URL。

缺点:

  • 兼容性较差:History模式依赖HTML5的History API,不支持的浏览器会导致路由无法正常工作。需要服务器端的特殊配置,以确保在路由- 刷新时能正确返回对应的页面。
  • 需要后端支持:当用户直接访问History模式下的URL时,需要服务器端正确配置,以返回对应的页面,否则会导致404错误。

选择使用哪种模式取决于你的项目需求和实际情况。如果你的项目需要兼容性好且不需要美观的URL,可以选择Hash模式。如果你的项目追求更美观的URL,并且能够进行服务器端配置,可以选择History模式。

http://www.lryc.cn/news/240182.html

相关文章:

  • 聊聊logback的LevelFilter
  • mysql 行转列 GROUP_CONCAT 试验
  • HarmonyOS元服务开发实战—端云一体化开发
  • 【搭环境】装Python3.8 open3d
  • 【C语言】深入解开指针(四)
  • AMEYA360:瑞萨面向高端工业传感器系统推出高精度模拟前端的32位RX MCU
  • 切面Aspect + 策略模式实现待办提醒功能
  • SAP 调取http的x-www-form-urlencoded形式的接口
  • thingsboard3.6的mailConfigTemplateController错误
  • Go语言中获取IP
  • 【Computer Vision Foundation】全球计算机视觉基金会论文网
  • 计网(复习自用)
  • 安徽省广德市选择云轴科技ZStack Cloud云平台建设县级智慧城市
  • 【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 6
  • nuxt3项目修改端口号
  • c语言中使用openssl对rsa私钥解密
  • mysql中数据是如何被用B+树查询到的
  • Redisson 分布式锁的最佳实践
  • ArkTS声明式开发范式
  • 史诗级云故障敲响警钟,应用保障不能没有“连续键”!
  • SSH连接远程服务器报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 解决方法
  • 数据库——查询连续的月份
  • git代码提交命令(如何提交代码)
  • jmeter中调用python代码
  • 当当网获得dangdang商品详情商品列表API 测试请求入口
  • git如何查看配置,修改配置,设置配置
  • 交通流合成数据生成原理及实现代码
  • leetcode 240. 搜索二维矩阵 II
  • a标签超链接 —— 实现点击前中后变色
  • 【好玩的开源项目】Linux系统之部署proxx扫清黑洞小游戏