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

相关推荐
李玮豪Jimmy11 分钟前
Day32:动态规划part5(完全背包、518.零钱兑换 II、377.组合总和 Ⅳ、70.爬楼梯 (进阶))
算法·动态规划
用户新14 分钟前
五万字沥血事件 深度学习 事件 循环 事件传播 异步 脱离新手区 成为事件达人
前端·javascript·事件·event loop
rit843249916 分钟前
基于GA-GM(1,1)模型的航空发电机状态趋势分析实现
算法
CQ_YM18 分钟前
数据结构之哈希表
数据结构·算法·哈希算法·哈希表
w2sfot23 分钟前
JS代码压缩
前端·javascript·html
pursuit_csdn30 分钟前
力扣周赛 - 479
算法·leetcode·职场和发展
飞天狗11132 分钟前
C. Needle in a Haystack
算法
这是个栗子33 分钟前
【JS知识点总结】JavaScript 中的精确取整:Math.floor、Math.ceil 与 Math.round
开发语言·javascript·ecmascript
FMRbpm39 分钟前
顺序表实现队列
数据结构·c++·算法·新手入门
飞天狗11140 分钟前
G. Mukhammadali and the Smooth Array
数据结构·c++·算法