hash路由模式

hash模式


hash模式是一种把前端路由的路径用井号 # 拼接在浏览器 URL 后面的模式。

一个完整的 URL 包括:协议、域名、端口、虚拟目录、文件名、参数、锚。

https://www.wangyuegyq.top/utils/index.html?name=123&phone=123#home
  • 协议:https
  • 域名:www.wangyuegyq.top
  • 端口号:443,https默认端口号是443,http默认端口号是80,默认端口号可以不写
  • 虚拟目录:/utils
  • 文件名:index.html
  • 参数:name=123&phone=123
  • 锚部分:home(#后面的值)

hash作用


  1. 路由

    hash值的变化,会触发hashchange事件,这样我们就可以通过监听hashchanges事件来根据不同的hash值去渲染不同的UI,以实现路由切换的目的。

    更改路由方式:

    (1)a标签

    (2)location.hash、location.href

    (3)浏览器前进后退按键或者history.back、history.go、history.forward

    (4)history.pushState、history.replaceState(H5 history 新特性)

    <div>
      <a href="#home">首页</a>
      <a href="#article">文章</a>
      <div id="content"></div>
    </div>
    <script>
      window.onhashchange = (event) => {
        const hash = window.location.hash;
        const content = document.getElementById('content');
        if (hash === '#home') {
          content.innerHTML = '首页'; 
        } else if (hash === '#article') {
          content.innerHTML = '文章'; 
        }
      }
    </script>
    
  2. 定位

    hash也称作锚点,DOM id 结合,可以用于页面定位。

    <div>
    <span id="hash-position">定位点</span>
    <a href="#hash-position">点击定位</a>
    </div>
    

hash特点


  • hash的改变,不会访问服务器,不会刷新页面(hash 值是网页的标志位,HTTP 请求不包含锚部分,不会发送给服务器,对后端无影响)

  • hash的改变,会触发hashchange监听事件

  • hash的改变,会改变浏览器的历史记录

    hash

    这也是为什么当hash的改变(hash的改变会记录在window.hisotry中),不仅仅可以出触发hashchange事件,还会触发popstate事件(监听history对象变化的事件)

注意事项:


1. 如果改变的hash值与当前的hash值一致时,hashchang不会改变,但是popstate事件会执行(location.href更改时,执行,但是location.hash更改时,不会执行,两者执行时,都不会创建一条新的历史记录)。

2. 哪怕新的hash值和当前的hash值相同时,history.pushState方法会创建一条新的历史记录

更多内容,访问:

history
hash
单页面应用和多页面应用
React-Router源码分析-History库
History库源码分析-Action 动作类型
History库源码分析-createLocation
History库源码分析-createPath
History库源码分析-parsePath

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

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

相关文章

关于400G光模块的常见问题解答

最近在后台收到了很多用户咨询关于400G光模块的信息&#xff0c;那400G光模块作为当下主流的光模块类型&#xff0c;有哪些问题是备受关注的呢&#xff1f;下面来看看小易的详细解答&#xff01; 1、什么是400G QSFP-DD光模块&#xff1f; 答&#xff1a;400G光模块是指传输速…

《011.SpringBoot之餐厅点餐系统》

《011.SpringBoot之餐厅点餐系统》【界面简洁功能简单】 项目简介 需要源码及数据库的私信… [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;DEA jdk1.8 Maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisPlus; 前台&#xff1a;Layuivue; …

如何批量在文件名中加标点符号?

如何批量在文件名中加标点符号&#xff1f;标点符号在文件名中的作用通常是用来分隔不同部分的内容&#xff0c;或者用来表示特定的含义。例如&#xff0c;下划线"_" 可以用来连接文件名的不同部分&#xff0c;使得文件名更易于阅读和理解。另外&#xff0c;使用连字…

苏宁API:一键搜索,海量商品任你选!

使用苏宁API按关键字搜索商品&#xff0c;可以在API的搜索参数中设置关键字。 例如&#xff0c;在搜索商品时&#xff0c;可以在API的请求参数中设置q关键字。例如&#xff0c;要搜索“鞋子”&#xff0c;可以将q设置为“鞋子”。 另外&#xff0c;还可以设置其他的搜索参数&…

九、Nacos集群搭建

Nacos集群搭建 1.集群结构图 官方给出的Nacos集群图&#xff1a; 其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理3个Nacos。这里负载均衡器可以使用nginx。 我们计划的集群结构&#xff1a; 三个nacos节点的地址&#xff1a; 节点ipportnacos1192.168.150.18845n…

八、Nacos配置管理(统一配置管理、配置热更新、配置共享)

目录 一、新增配置 二、配置的获取 三、配置自动刷新 3、实现配置的热更新 方式一&#xff1a;在controller上添加注解&#xff0c;并重启服务 方式二&#xff1a;使用configuration注解 四、多环境配置共享 五、多环境配置优先级 一、新增配置 配置创建成功 二、配置的…

所有社区工作者!能救一个是一个

救命啊&#xff0c;这东西我怎么早不知道呢&#xff01; 社区人到年底了各种要写的东西很烦啊&#xff01;突然看到这个&#xff0c;真的救我大命了啊&#xff01; 谁懂啊&#xff1f;&#xff01;&#xff01;平时写个东西起码两三天&#xff0c;试了一下这东西&#xff01;…

CDR最新CorelDRAWX8安装步骤教程

CorelDRAW Graphics Suite非凡的设计能力广泛地应用于商标设计、标志制作、模型绘制、插图描画、排版及分色输出等等诸多领域。作为一个强大的绘图软件&#xff0c;它被喜爱的程度可用事实说明&#xff1a;用作商业设计和美术设计的PC机几乎都安装了 。CorelDRAW让您轻松应对创…

LeetCode(22)N 字形变换【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接&#xff1a; N 字形变换 1.题目 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A …

硬链接和软链接的区别

硬链接&#xff1a; 硬链接指向计数器&#xff0c;计数器指向原始文件&#xff0c;计数器标记使用的链接的数量 软链接&#xff1a; 软链接是指向硬链接的链接&#xff0c;软链接是绝对地址&#xff0c;软链接也叫符号链接&#xff1b;软链接创建后计数器的值不会变&#xff…

sqli-labs(Less-4) extractvalue闯关

extractvalue() - Xpath类型函数 1. 确认注入点如何闭合的方式 2. 爆出当前数据库的库名 http://127.0.0.1/sqlilabs/Less-4/?id1") and extractvalue(1,concat(~,(select database()))) --3. 爆出当前数据库的表名 http://127.0.0.1/sqlilabs/Less-4/?id1") …

一言成文大模型:大模型实践落地之路

百度CEO&#xff0c;李彦宏指出、深度学习技术&#xff0c;大语言模型具备了理解、生成、逻辑、记忆等人工智能的核心基础能力&#xff0c;为通用人工智能带来曙光。 元宇宙_一言成文大模型 一言成文大模型&#xff1a;大模型实践落地之路

【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏2(附项目源码)

文章目录 先看本次实现的最终效果前言敌人生命值扣血测试&#xff0c;敌人死亡控制敌人动画敌人死亡动画敌人转向问题源码完结 先看本次实现的最终效果 前言 本期紧接着上一篇&#xff0c;主要内容是实现本期主要内容是实现敌人血条、动画和行为逻辑。 敌人生命值 绘制血条U…

15 万奖金!开放原子开源大赛OpenAnolis 赛题@你报名

8 月 29 日&#xff0c;2023 开源和信息消费大赛新闻发布会在北京召开&#xff0c;首届“开放原子开源大赛”正式启动报名。大赛由工业和信息化部、江苏省人民政府、湖南省人民政府共同主办&#xff0c;开源赛道拟由开放原子开源基金会、央视网、江苏省工业和信息化厅、无锡市人…

掌握这个技巧,你也能成为资产管理高手!

资产管理是企业管理中至关重要的一环&#xff0c;涉及到对公司财务、物资和信息等各个方面的有效监控和管理。 随着企业规模的扩大和业务复杂性的增加&#xff0c;采用先进的资产管理系统成为确保企业高效运营的必要条件之一。 客户案例 医疗机构 温州某医疗机构拥有大量的医…

超越传统:明懿金汇定义现代金融服务

量化交易的新纪元&#xff1a;明懿金汇引领创新浪潮 在数字化时代的飞速发展下&#xff0c;明懿金汇凭借其独特的跟单平台和卓越的金融服务&#xff0c;成为互联网金融行业的佼佼者。自2020年起&#xff0c;公司重点投资于互联网金融行业&#xff0c;并通过与国内知名证券软件开…

xxl-job配置须知

执行器也有自己的一个接口等 配置xxl-job YAML xxl:job:admin:addresses: http://localhost:8080/xxl-job-admin/executor:appname: media-process-serviceaddress:ip:port: 9999logpath: /data/applogs/xxl-job/jobhandlerlogretentiondays: 30accessToken: default_token--…

java面试常问

文章目录 java 基础1、JDK 和 JRE的区别2、 和equals的区别3、String、StringBuffer、StringBuilder4、String str “a”、 new String(“a”)一样吗&#xff1f;5、ArrayList 和 LinkedList的区别&#xff1f;6、HashMap的原理与实现6.1、容量与扩容6.2、扩容机制 7、HashMa…

智慧汽车—城市NOA迎爆发

在特斯拉引领的 TransformerBev 架构驱动下&#xff0c;智驾算法趋近于端到端的智驾大模型&#xff0c;使得智能驾驶开始步入城市 NOA 新时代。 消费者认知增强&#xff0c;未来市场空间广阔。伴随城市 NOA 在 23-24 年的落地和普及、L3 法规在年内的落地&#xff0c;行业 0-1…

逆向USB设备共享:利用内网穿透让远程设备访问本地USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…