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

相关推荐
wa的一声哭了1 分钟前
内积空间 正交与正交系
java·c++·线性代数·算法·矩阵·eclipse·云计算
2501_946244785 分钟前
Flutter & OpenHarmony OA系统图片预览组件开发指南
android·javascript·flutter
SWAGGY..5 分钟前
数据结构学习篇(8)---二叉树
数据结构·学习·算法
星轨初途8 分钟前
牛客小白月赛126
开发语言·c++·经验分享·笔记·算法
leoufung12 分钟前
动态规划DP 自我提问模板
算法·动态规划
爱编程的小吴19 分钟前
【力扣练习题】热题100道【哈希】560. 和为 K 的子数组
算法·leetcode·哈希算法
Swift社区25 分钟前
LeetCode 463 - 岛屿的周长
算法·leetcode·职场和发展
皮卡蛋炒饭.26 分钟前
宽搜bfs与深搜dfs
算法·宽度优先
xu_duo_i30 分钟前
vue3+element-plus图片上传,前端压缩(纯函数,无插件)
前端·javascript·vue.js
Coder_Boy_31 分钟前
基于SpringAI的智能AIOps项目:部署相关容器化部署管理技术图解版
人工智能·spring boot·算法·贪心算法·aiops