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

相关推荐
暴风鱼划水6 分钟前
算法题(Python)数组篇 | 4.长度最小的子数组
python·算法·力扣
gugugu.7 分钟前
算法:二分算法类型题目总结---(含二分模版)
算法
大G的笔记本11 分钟前
算法篇常见面试题清单
java·算法·排序算法
用户66006766853930 分钟前
从变量提升到调用栈:V8 引擎如何 “读懂” JS 代码
前端·javascript
白兰地空瓶30 分钟前
【深度揭秘】JS 那些看似简单方法的底层黑魔法
前端·javascript
7澄131 分钟前
深入解析 LeetCode 数组经典问题:删除每行中的最大值与找出峰值
java·开发语言·算法·leetcode·intellij idea
进阶的小叮当34 分钟前
Vue代码打包成apk?Cordova帮你解决!
android·前端·javascript
AI科技星40 分钟前
宇宙的几何诗篇:当空间本身成为运动的主角
数据结构·人工智能·经验分享·算法·计算机视觉
程序媛_MISS_zhang_011043 分钟前
浏览器开发者工具(尤其是 Vue Devtools 扩展)和 Vuex 的的订阅模式冲突
前端·javascript·vue.js
前端小L1 小时前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法