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

相关推荐
你怎么知道我是队长几秒前
win11系统查看设备配置
android·java·javascript
期末考复习中,蓝桥杯都没时间学了3 分钟前
力扣刷题9
算法·leetcode·职场和发展
砚边数影8 分钟前
线性回归原理(二):梯度下降算法,Java实现单变量/多变量拟合
java·数据库·算法·线性回归·kingbase·kingbasees·金仓数据库
春日见14 分钟前
Docker如何基于脚本拉取镜像,配置环境,尝试编译
运维·驱动开发·算法·docker·容器
csdn_aspnet27 分钟前
Java常用算法深度解析:从集合框架到并发编程
java·算法
零基础的修炼30 分钟前
位运算---LC268丢失的数字
算法·leetcode·职场和发展
雨季66630 分钟前
构建 OpenHarmony 简易 BMI 健康指数计算器:用基础数学实现健康自评
javascript·flutter·ui·自动化·dart
2301_7886624042 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
嫂子开门我是_我哥42 分钟前
第十七节:项目实战1:猜数字游戏(模块化开发实现)
开发语言·python·算法·游戏
啊阿狸不会拉杆1 小时前
《计算机操作系统》第十二章 - 保护和安全
开发语言·网络·c++·算法·安全·计算机组成原理·计算机操作系统