js修改hash的方法

关键:

javascript 复制代码
window.onhashchange = (event) => {
  // do something
}

hash变化包括

  • js修改hash
  • 手动修改url的hash
  • 浏览器前进、后退

js修改hash:

javascript 复制代码
location.href = "#user";

在vue-router等路由组件中如何实现history模式呢?

关键函数:history.pushState

javascript 复制代码
docment.getElementById('btn1').addEventListener('click', function() {
	const state = {.name: 'page1' };
	console.log('切换路由到page1');
	history.pushState(state, '', 'page1');
})

// 监听浏览器前进、后退
window..onpopstate = (event) => {
	console.log('onpopstate', event.state, location.pathname);
}

注意,history模式需要注意需要后端配合!如果不做浏览器兼容性处理,在history模式下切换了路由,此时再刷新,会模式去找page1这个页面,导致找不到该页面。所以我们需要在服务器配置返回index.html,路由由history.pushState触发。

相关推荐
我就是不信20 小时前
深入理解 Python 虚拟机:字典(dict)的优化
开发语言·python·哈希算法
我就是不信20 小时前
C语言排序问题详解:从冒泡到快排的完整指南
c语言·算法·排序算法
l1t20 小时前
DeepSeek总结的PIVCO-Huffman编码性能优化
数据结构·c++·算法
-dzk-20 小时前
【贪心算法】LC 763.划分字母区间
算法·贪心算法
拾饵94220 小时前
第六周第二节那个RAG工业项目遇到的问题
算法
铅笔小新z20 小时前
【stm32】理解弱引用
javascript·stm32·嵌入式硬件
强壮的CAT21 小时前
VINS-Fusion 移植 ROS2 Jazzy 踩坑(一):环境与编译
人工智能·算法·机器人·自动驾驶
Omics Pro21 小时前
计算虚拟扰动:网络毒理+虚拟敲除
数据库·人工智能·算法·机器学习·自然语言处理
yyy(十一月限定版)21 小时前
CF2137D Replace with Occurrences
算法
凤城老人21 小时前
从PyQt6到Electron:一款英语字帖生成器的跨平台重构实战与踩坑全记录
javascript·重构·electron