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触发。

相关推荐
SendTomo8 小时前
P2P文件传输工具对比:SendTomo vs send.wang
javascript·网络协议·webrtc·html5·p2p
Nil2088 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
-dzk-8 小时前
【动态规划】LC 118.杨辉三角
算法·动态规划
恣逍信点8 小时前
《凌微经》静态自悖——变化之自因
人工智能·科技·算法·机器学习·业界资讯·拓扑学·哲学
吃着火锅x唱着歌8 小时前
LeetCode 3885.设计事件管理器
算法·leetcode·职场和发展
土司大王9 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode
Eloudy9 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
依然鸣9 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试
SendTomo9 小时前
WebRTC文件互传工具实测对比
javascript·网络·webrtc·html5·p2p
听取WA声一片(无恶意)10 小时前
CSP-J/S 初赛图论完全讲义
算法·csp-s初赛·csp-j初赛