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

相关推荐
breeze jiang6 小时前
React useRef 实战:从 input 聚焦到 Web Worker 引用
前端·javascript·react.js
Ivanqhz6 小时前
泰勒展开(Taylor Expansion)
算法·决策树·机器学习·集成学习
苏灿烤鱼7 小时前
GitHub #2 拆解|把工程经验装进 Agent,为什么仍会“静默失效”?
javascript·人工智能·agent
zander2588 小时前
34. 在排序数组中查找元素的第一个和最后一个位置:用两个边界定位区间
数据结构·算法·leetcode
郑州光合科技余经理13 小时前
代驾系统架构拆解:订单链路、权限组织与私有化源码交付
开发语言·后端·算法·架构·系统架构·uni-app·php
To_OC15 小时前
LC 35 搜索插入位置:二分查找谁都会,边界条件谁写谁懵
javascript·算法·leetcode
码哥DFS15 小时前
二叉树的直径
开发语言·javascript·算法
光影少年17 小时前
RN的Fabric 渲染流程
运维·前端·javascript·react native·react.js·fabric
营养充电站18 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter