这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战
前言
前文学习了关于浏览器中的 JS 之浏览历史-history以及其使用方式, 本文继续来学习浏览器中的 JS - 浏览历史记录的管理 API - hashchange
其实好多让我们方便省心使用的库/框架底层都是 JS 基础的封装, 比如各种路由的封装.通过前几篇文章我们学习记录了浏览器中的 JavaScript
, 更多更文-各知识点小结-list:
浏览器 浏览历史管理方法-hashchange
hashchange
这个 hash 对于我们开始学习启动一个 Vue 项目应该特别熟悉, yarn dev
启动 Vue 项目在浏览器地址栏 会在 url 末尾出现一个 #
, 这就是 hash 模式, 另外还有 history 模式, 地址栏就没有 #
. 这里底层的原理还是应用的 浏览器底层 API 来封装的.
hashchange
第一种处理浏览器历史记录的方案是 hashchange事件
和 location.hash
location.hash
是用于对 URL 片段进行设置标识符. 通常用于锚点定位的滚动到文档页面的指定文档区域, 指定要滚动到的文档区域的 ID,location.hash
不一定必须是元素 ID, 也可以是设置的任意字符串
设置 location.hash
会更新浏览器的地址栏 URL, 在末尾#heading-6
,同时也相当于一条历史记录被添加到历史记录中.
// 比如 url:
URL: https://juejin.cn/post/7023643374569816095#heading-6
hashchange 事件
通过定义一个 window.onhashchange
监听函数, 也可以使用 事件监听 addEventListener
注册一个 hashchange
监听器, 读取 location.hash
.
这样就可以来处理 url 来显示应用的页面的显示状态, 当发生变化是通过相关逻辑步骤来更新显示应用的新状态.
相关更文阅读
- HTTP 响应代码
- 浏览器中的 JS-WebSocket 通信(一)
- 学习浏览器中的 JS-WebSocket 发送接收消息(二)
- 学习浏览器中的 JS-存储的分类(一)
- 浏览器中的 JS-history
Calm Down & Carry On!
Buy Less by Know More!
学习, 记录, 积累 是一个漫长的痛苦过程! 也就是这个不断经历痛苦的锤炼, 让我们更加强大! 加油!