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

相关推荐
fpcc8 分钟前
数据结构和算法—最短路径的算法
数据结构·算法
Hilaku20 分钟前
技术好就能升职是前端圈最大的谎言!
前端·javascript·程序员
茉莉玫瑰花茶25 分钟前
RAG 数据检索
人工智能·算法·机器学习
光影少年34 分钟前
react navite高频手写/实操题
前端·javascript·react native·react.js·前端框架
speop43 分钟前
hell-gpu| TASK01-2
linux·运维·算法
AI视觉网奇1 小时前
3d子部件高亮选中
开发语言·javascript·3d
阿图灵1 小时前
LangGraph 实战 03:Workflows 与 Agents——六种工作流模式与智能体实战(附 6 个可运行示例)
java·前端·javascript·工作流·ai agent·智能体·langgraph
zzzll11111 小时前
深入理解 Java HashMap:从原理到实战
java·开发语言·哈希算法
2603_965896621 小时前
JavaScript 对象零基础详解|属性、方法、遍历、增删改查
开发语言·javascript·ecmascript
Navigator_Z1 小时前
LeetCode //C - 1223. Dice Roll Simulation
c语言·算法·leetcode