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

相关推荐
All for pursuit.1 分钟前
【位运算-3】136.只出现一次的数字
数据结构·c++·算法·leetcode
MoRanzhi12032 分钟前
106.正则问题(分治)
python·算法·正则表达式·蓝桥杯·递归·分治算法·字符串处理
变与不变80619 分钟前
防抖节流详解
开发语言·前端·javascript
用户66026761187924 分钟前
HTTP 200,页面仍是旧状态:定位一次前后端字段错配
javascript
suhan25 分钟前
【数据结构】五、树:7.哈夫曼树、哈夫曼编码
数据结构·算法·排序算法
kkhimself34 分钟前
POJ-3126
算法
用户725264966296935 分钟前
浏览器为什么加载不了超大图片
前端·javascript
suhan43 分钟前
【数据结构】五、树:6.平衡二叉树AVL
数据结构·算法·排序算法
suhan44 分钟前
【数据结构】五、树:5.二叉排序树BST
数据结构·算法·排序算法
OpsEye1 小时前
企业 AI 治理到底管什么:预算、权限、会话、效能四个维度
javascript·ai编程