JS面试题:hash和history的区别

一、hash 模式和 history 模式的介绍

由于 Vue 项目为单页面应用,所以整个项目在开发和构建过程中,仅存在一个HTML物理文件。通过路由系统可以实现将项目的组件与可访问的URL路径进行绑定。由于Vue项目只有一个HTML物理文件,切换页面时既需要让访问的URL路径发生变化,又不能触发 HTML 物理文件的重新加载,这就使得 VueRouter 的跳页模式不能使用普通的超链接方式。
VueRouter 为了支持单页面应用的页面管理和页面跳转,提供了两种页面的跳转和加载模式:

二、hash 模式

hash 模式使用了锚点技术重写URL访问路径,会在原有的URL路径后拼接/#/xxx,这种方式可以在不重新加载原有HTML文件的基础上,实现切换URL,路径的目的。hash 模式的原理实现案例,代码如下:

重新加载的情况下切换 URL路径,配合 onhashchange()可以实现,一旦 URL 中的 hash 部分发生变化,就触发函数通知,通过 JavaScript编程便可以很快速的实现 DOM 对象的切换展示。hash 模式同时也存在不足之处,如在分布式微前端项目中,嵌套的子应用和主应用都使用用 hash 模式时,由于bash 模式的 URL路径只能存在一个#,会导致子应用和主应用在定义URL路径上存在困难。hash 模式的URL路径中包含#,也会在视觉上导致URL路径不美观。

三、history 模式


history 模式是 VueRouter 中常用的一种路由模式,它与 hash 模式不同,不需要借助锚点技术重写URL路径,所以history模式使用的URL路径中不存在#,在视觉上更加美观。history 模式采用 history 对象中的pushState()函数重写URL路径,可在触发重新加载的情况下变更 URL路径,history 模式的原理,代码如下:

history 模式重写 URL路径的解决方案与 hash 模式现象类似但本质不同,虽然 history模式可以重写URL路径,但是重写后的新路径中并不包含原有HTML物理文件的访问地址,所以 history 模式在重写 URL 路径后,一旦刷新网页会造成 404无法访问的效果。VueCL在开发环境中解决了 history 模式的刷新问题,不过项目发布到生产环境时,由于 history 模式的 URL路径问题,还需要配合生产服务器的转发规则重写,用以支持 history 模式的路由

四、区别

1. 是否带”#“号,hash 就是指 url 后面的 # 号以及后面的字符,history没有带#,外观上比hash 模式好看些
2. 原理的区别(看上面)
3. 兼容性:hash 能兼容到IE8, history 只能兼容到 IE10;
4. 请求:由于 hash 值变化不会导致浏览器向服务器发出请求,而且 hash 改变会触发 hashchange 事件(hashchange只能改变 # 后面的url片段);虽然hash路径出现在URL中,但是不会出现在HTTP请求中,对后端完全没有影响,因此改变hash值不会重新加载页面,基本都是使用 hash 来实现前端路由的。history前进后退不会导致浏览器向服务器发送请求,但是服务器没有配置,刷新会导致404

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/676711.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vivado BD_INTF_NET、BD_INTF_PIN

BD_INTF_NET 描述 接口是一组信号,它们共享一个共同的功能,同时包含 单个信号和多条总线。例如,AXI4Lite主机包含一个 单个信号的数量加上多条总线,这些都是制作 联系通过将这些信号和总线分组到一个接口中,Vivado IP积…

VisualStudio中:如果某个项目不显示SVN的show log等,而其他项目都正常

VisualStudio中:如果某个项目不显示SVN的show log等,而其他项目都正常。说明大概率是当前项目的问题,而不是VisualStudio的问题! 1.这个项目内有一个“隐藏”文件夹.svn 》先删除! 2.如果外层文件夹有红色感叹号&…

英伟达剧透新一代最强 GPU;奥特曼公开回应 AI 语音争议丨 RTE 开发者日报 Vol.217

开发者朋友们大家好: 这里是 「RTE 开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

重学java 59.Properties属性集集合嵌套集合下总结

不要咀嚼小小悲观,而忘掉整个世界 —— 24.6.3 一、Properties集合(属性集) 1.概述 Properties 继承 于HashTable 2.特点 a、key唯一,value可重复 b、无序 c、无索引 d、线程安全 e、不能存null键,null值 f、Propertie…

idea项目maven下载依赖报错

报错: 1、Failure to find bad.robot:simple-excel:jar:1.0 in https://maven.aliyun.com/repository/public was cached in the local repository, resolution will not be reattempted until the update interval of aliyunmaven has elapsed or updates are forc…

小程序集arcgis地图显示自定义坐标的功能实现记录!(学习笔记)

最近再做一个新能源回收项目,项目中有个根据回收点坐标数据显示区域内回收点位置,点击图标直接导航到该位置,及分布的需求,研究了一下,实现效果如下,实现起来很简单,代码及效果 回收点位置及分…

Linux - 逻辑卷的创建和管理

1.逻辑卷LVM的创建 1.1 创建步骤 ①添加硬盘或者创建分区 ②创建物理卷 pvcreate ③创建卷组 vgcreate ④创建逻辑卷 lvcreate ⑤创建文件系统 mkfs.xfs/ect4/... ⑥创建挂…

随身wifi哪个牌子的最好用?网速最快的随身wifi推荐测评,随身wifi罗永浩推荐!

现在很多人都开始使用随身WiFi,因为互联网发达,看视频、刷抖音、看直播等等都需要流量,手机流量不够用,流量需求也很高。因此随身WiFi逐渐出现在人们的视野中,在众多品牌中一款名为格行的随身wifi被各明星和千万网红争…

Docker基础篇之本地镜像发布到阿里云

文章目录 1. 本地镜像发布到阿里云的流程2. 阿里云开发平台3. 将自己的本地镜像推送到阿里云 1. 本地镜像发布到阿里云的流程 阿里云ECS Docker生态如下图所示: 2. 阿里云开发平台 在控制台找到容器和镜像服务: 然后创建一个个人实例: 下面…

HW面试常见知识点2——研判分析(蓝队中级版)

🍀文章简介:又到了一年一度的HW时刻,本文写给新手想快速进阶HW蓝中的网安爱好者们, 通读熟练掌握本文面试定个蓝中还是没问题的!大家也要灵活随机应变,不要太刻板的回答) 🍁个人主页…

江大白 | 万字长文,AIGC算法工程师的面试秘籍,推荐收藏!

本文来源公众号“江大白”,仅用于学术分享,侵权删,干货满满。 原文链接:万字长文,AIGC算法工程师的面试秘籍,推荐收藏! 以下文章来源于微信公众号:WeThinkln 作者:Roc…

模块概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 模块的英文是Modules,可以认为是一盒(箱)主题积木,通过它可以拼出某一主题的东西。这与第6章介绍的函…

《互联网政务应用安全管理规定》电子邮件安全如何整改?

继上篇文章(解读《互联网政务应用安全管理规定》网络和数据安全中的身份认证和审计合规)之后,本篇文章继续解读第五章“电子邮件安全”,为党政机关事业单位提供电子邮件系统整改思路。 “电子邮件安全”内容从第三十一条到第三十…

机器学习的热门领域及应用趋势

机器学习的热门领域及应用趋势 近年来,机器学习(Machine Learning, ML)已经成为科技领域的热门话题,其在各个行业的应用越来越广泛和深入。本文将详细介绍当前机器学习的几个热门领域,以及人们在这些领域中使用的机器…

【数据结构】图论——Prim算法和Kruskal算法

目录 Prim算法和Kruskal算法Prim算法的原理数据结构算法步骤解释算法实现代码示例 Kruskal 算法Kruskal算法的原理和步骤Kruskal算法的实现数据结构并查集操作Kruskal算法 Prim算法和Kruskal算法 文章: 【数据结构】图论(图的储存方式,图的遍历算法DFS和…

Ai绘画工具Stable Diffusion,手把手教你训练你的专属Lora模型,神级教程建议收藏!

哈喽,大家好,我是设计师阿威。 今天给大家带来的是Stable Diffusion训练Lora的教程,希望对大家有帮助。 一、硬件要求 我们知道Stable Diffusion WebUI对显卡要求比较高,同样Lora训练对显卡要求更高,所以要想训练一…

芝麻IP好用吗?来测试了!

作为老牌代理IP服务厂商,芝麻IP和青果网络代理IP都做的不错,市场上几乎可以是有口皆碑了,上次测试了青果网络的代理IP,效果表现得还挺不错,和他们自己宣传的以及客户对他们的评价大差不差。 总的来说,他们家…

Marin说PCB之Max parallel知多少?

今天是个阳光明媚,万里乌云的好日子。小编我一如既往地到家打开电脑准备看腾讯视频的五十公里桃花坞的第四季,在看到汪苏泷汪台说650电台要解散的时候小编我差点也哭了。650电台之于桃花坞就像乐队的鼓手一样,都是一个团队的灵感啊&#xff0…

视频号电商再升级,誓要分走抖音的蛋糕

2022年,马化腾对视频号的评价是:“微信最亮眼的业务就是视频号,基本上是全场的希望。”到了2024年,这个评价变成了:“视频号经过一年多的发展,的确不负众望。” 一年多的时间,从全村的希望&…

Docker 基础使用(3) 存储卷

文章目录 存储卷的含义存储卷的分类存储卷的作用存储卷的使用存储卷实际使用案例 ---- MySQL灾难恢复存储卷的局限 Docker 基础使用(0)基础认识 Docker 基础使用 (1) 使用流程概览 Docker 基础使用(2) 镜像与容器 Docker 基础使用…