当前位置: 首页 > news >正文

vue-router 原理【详解】hash模式 vs H5 history 模式

在这里插入图片描述

hash 模式 【推荐】

路由效果

在不刷新页面的前提下,根据 URL 中的 hash 值,渲染对应的页面

  • http://test.com/#/login 登录页
  • http://test.com/#/index 首页

核心API – window.onhashchange

监听 hash 的变化,触发视图更新

window.onhashchange = (event) => {console.log("old url", event.oldURL);console.log("new url", event.newURL);console.log("hash", location.hash);// 执行视图更新(比较复杂,无需深究)
};

hash 的特点

  • hash 变化会触发网页跳转,即浏览器的前进、后退
  • hash 变化不会刷新页面(单页面应用SPA 必需的特点)
  • hash 永远不会提交到 server 端

修改 hash 的方式

  • 通过JS 修改
location.href='#/user'
  • 手动修改 url 里的hash
  • 浏览器前进、后退

H5 history 模式

路由效果

在不刷新页面的前提下,根据 URL 中的 pathname 值,渲染对应的页面。

  • http://test.com/login 登录页
  • http://test.com/index 首页

核心API – history.pushstate 和 window.onpopstate

  • 使用 history.pushstate 跳转页面,避免页面刷新
const state = { name: "index" };
// 使用 history.pushState 跳转页面,浏览器不会刷新页面
history.pushState(state, "", "index");
  • 使用 window.onpopstate 监听浏览器前进、后退
//监听浏览器前进、后退
window.onpopstate = (event) => {console.log("onpopstate", event.state, location.pathname);
};

history 的特点

  • 需后端配合
    无论访问怎样的 url ,都返回 index.html 页面

应该选择哪种模式?

  • to B (面向企业的服务)的系统,推荐用 hash,简单易用,对 url 规范不敏感
  • to C(面向消费者的服务)的系统,可以考虑选择 H5 history,但需要服务端支持
  • 能选择简单的,就别用复杂的,要考虑成本和收益
http://www.lryc.cn/news/340576.html

相关文章:

  • WebGl/Three 粒子系统 人物破碎及还原运动
  • 华为OD-C卷-分披萨[100分]
  • uniapp 中video标签视频禁止快,拖拽快进
  • 网页端HTML使用MQTTJs订阅RabbitMQ数据
  • 课题学习(二十一)----姿态更新的四元数算法推导
  • NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL、SQL-PaLM)、新一代数据集BIRD-SQL解读
  • 双指针运用:删除重复元素、移除元素
  • 什么是三高架构
  • Unity 对APK签名
  • 合成孔径雷达干涉测量InSAR数据处理、地形三维重建、形变信息提取、监测等应用
  • QT进阶------------------QPushButton(快速添加按钮与使用)
  • Vue项目管理器创建项目
  • PHP-extract变量覆盖
  • 研究表明,全球互联网流量竟有一半来自机器人
  • 橡胶衬板的更换与安装
  • Compose 简单组件
  • 第十一届蓝桥杯省赛真题(C/C++大学B组)
  • Qt 实战(2)搭建开发环境 | 2.1、Windows下安装QT
  • 校园通用型发生网络安全事件解决方案
  • 数通HCIE考试分享:考前心态很重要,心情放松好过一次练习
  • GVRP协议与动态、静态vlan
  • shell脚本启动jar包
  • qt 元对象系统及属性系统
  • 2024年MathorCup数学建模A题移动通信网络中PCI规划问题解题文档与程序
  • Learn something about front end——颜色
  • 各大厂都推出鸿蒙APP了,你就一定要学习一下鸿蒙APP测试了!
  • ppt里的音乐哪里来的?
  • 【算法】标签算法及其运作流程
  • 【数据结构】习题之链表的回文结构和相交链表
  • 5个常见的前端手写功能:New、call apply bind、防抖和节流、instanceof、ajax