原理区别

hash原理:hash通过监听浏览器的onhashchange()事件变化,查找对应的路由规则
history原理: 利用H5的 history中新增的两个API pushState() 和 replaceState() 和一个事件onpopstate监听URL变化history模式

利用了HTML5 History Interface中新增的pushState()和replaceState()方法,这两个方法应用于浏览器的历史记录栈,在当前已有的back、forward、go的基础上,他们提供了对当前浏览器进行修改的功能,只是当它们被修改时,虽然浏览器的URL发生了变化,但是不会立即向后端服务器发送请求,但是如果点击刷新,就会重新向后端服务器发送请求。

hash 就是指 url 尾巴后的 # 号以及后面的字符,history没有底带#,外观上比hash 模好看些hash回车刷新会加载到地址栏对应的页面,history一般就是404掉了hash 能兼容到IE8, history 只能兼容到 IE10;

hash 值变化不会导致浏览器向服务器发出请求,而且 hash 改变会触发 hashchange 事件(hashchange只能改变 # 后面的url片段);

虽然hash路径出现在URL中,但是不会出现在HTTP请求中,对后端完全没有影响,因此改变hash值不会重新加载页面,基本都是使用 hash 来实现前端路由的。

谢谢阅读!

美好的明天会感谢今天努力的自己!

hash和history的原理和区别相关推荐

  1. hash值和history值详解区别

     赠人玫瑰 Vue作为前端主流的渐进式开发框架被大量程序员熟知应用,Vue中为了构建SPA(single page web application,单页Web应用),需要引入前端路由系统,这也就是 V ...

  2. Hash 和 History模式的区别

    表现形式的区别 Hash 模式 https://music.163.com/#/playlist?id=3102961864(有# 号,# 号后面带路由地址,?号携带 url 参数,官方文档说这种模式 ...

  3. vue路由的两种模式:hash与history的区别

    前言:众所周知,vue-router有两种模式,hash模式和history模式,下面来看看两者的区别. 一.基本情况 直观区别:hash模式url带#号,history模式不带#号. 1.hash模 ...

  4. 浅谈前端路由原理hash和history

    浅谈前端路由原理hash和history

  5. history模式监听_面试题:VueRouter中的 hash 模式和 history 模式有什么区别

    面试题:VueRouter中的 hash 模式和 history 模式有什么区别 hash模式 hash 模式的路由中带有 # 号 hash 模式通过 window.onhashchange 方法监听 ...

  6. vue-router的两种模式(hash和history)及区别

    为什么要有hash 和history? 对于Vue这类渐进式前端开发框架,为了构建SPA(单页面应用),需要引入前端路由系统,这也就是Vue-Router存在的意义.前端路由的核心,就在于--改变试图 ...

  7. hash 和 history 两种模式

    区别 hash模式下,仅hash符号之前的内容会被包含在请求中,如 http://www.11.com 因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回404错误: history模式下,前端 ...

  8. “约见”面试官系列之常见面试题第二十六篇之vue-router的hash和history(建议收藏)

    这篇文章主要介绍了Vue-router 中hash模式和history模式的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 Vue-router 中hash模式和hi ...

  9. 前端路由模式详解(hash和history)

    前端路由模式详解(hash和history) 前端路由有两种模式:hash 模式和 history 模式,接下来分析这两种模式的实现方式和优缺点. hash 模式 hash 模式是一种把前端路由的路径 ...

最新文章

  1. Day25 linux shell中的特殊符号与命令
  2. 七种武器——.NET工程师求职面试必杀技
  3. 理解向日葵甘特之六——定义数据列
  4. python choose语句作用_理解闭包是如何与变量作用域相互影响的
  5. 一些jquery的使用方法
  6. 如何使用QGIS下载在线地图
  7. shell错位_shell脚本出错!来大神指出错误出处!!!!
  8. 简明 Python 教程
  9. Mac eclipse下载地址 Java开发
  10. excel 显示 html代码,excel转成html显示
  11. NSA方程式泄漏工具包浅析
  12. 启航——我的第一篇博客
  13. 物联网卡传感器赋能零售商品感应机制 开启智能零售新风尚
  14. 百度地图InfoWindow信息窗口的自定义和样式修改
  15. 小程序实现老虎机抽奖动画
  16. pearsonr(x,y)、corr()、corrcoef(u1) 相关系数计算
  17. QQ注册页面(完整版)
  18. c语言十进制转八进制递归,C语言之利用递归将十进制转换为二进制
  19. 苹果4s怎么显示无服务器,苹果4s连接电脑没有反应怎么办 苹果4s怎么连接电脑...
  20. 基于ZigBee的智能家居设计与实现—MQTT服务器搭建+APP开发

热门文章

  1. 小狼毫输入法标点符号直接上屏,反斜杠(\)输入顿号(、) BY 冷家锋、刘亭亭
  2. 罗永浩:锤子起死回生在 2017,现在是抢手“香饽饽儿”
  3. 套路大盘点 ,那些年程序员都是如何找到对象的~
  4. Mac电脑上矢量绘图设计软件推荐:Sketch一款不逊色PS设计应用
  5. 谷歌全新 App 广告线上课程,让您的 App 推广事半功倍
  6. kubernetes_22_基于containerd部署kubernetes v1.20.5
  7. 蓝桥杯单片机比赛学习:7、中断系统之串口中断的基本原理
  8. 整理 .Net 2.0 下 WinForms中常用的方法(更新中...)
  9. 惠普台式电脑引导不了系统_惠普电脑如何进入bios设置引导模式
  10. Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战