【vue3|第20期】vue3中Vue Router路由器工作模式

news2024/9/24 16:37:49

日期:2024年8月6日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006

说在最前面:本文 vue3 的示例代码,在没有另外声名的情况下,均采用 <script setup> 组合式代码风格,风格统一,避免混乱,请各位新老食客放心食用哈 ^ _ ^


文章目录

  • 一、前言
  • 二、3种路由器工作模式
    • 1. Hash 模式
    • 2. HTML5 History 模式
    • 3. Abstract 模式
  • 四、注意事项
  • 五、结语


在这里插入图片描述


一、前言


Web 页面的工作方式是通过 HTTP 请求从服务器获取HTML文档,然后由浏览器解析并显示内容。随着 Web 应用的发展,特别是单页应用SPA)的流行,需要在不重新加载整个页面的情况下,更新页面的部分内容Vue Router 支持多种工作模式,每种模式都有其特定的使用场景和配置方式。本文将详细介绍 Vue Router 的三种工作模式:Hash 模式HTML5 History 模式Abstract 模式

二、3种路由器工作模式


1. Hash 模式

例如,http://example.com/#/page1 中,#/page1 就是哈希值。

Hash 模式是一种常见的路由工作方式。在这种模式下,URL 中的哈希值被用于表示路由信息。当哈希值发生变化时,页面不会进行重新加载,而是由 Vue Router 来处理路由的切换。这种模式的一个优点是不需要服务器端配置额外的路由,因为 # 后面的内容不会发送到服务器。

语法:history: createWebHashHistory()

import { createRouter, createWebHashHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
];
const router = createRouter({
  history: createWebHashHistory(),
  routes,
});
export default router;

在上述代码中,createWebHashHistory() 创建了一个基于 Hash 的历史记录模式。用户访问 / 时会显示 Home 组件,访问 /about 时会显示 About 组件。

2. HTML5 History 模式

http://example.com/page1

HTML5 History 模式利用了 HTML5 History API,允许我们使用正常的 URL 路径,而不需要在 URL 中包含 # 符号。这种模式提供了更加美观的 URL,但需要服务器端进行相应的配置,以便在用户访问应用中的不同路径时返回相同的页面。

语法:history: createWebHistory()

import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
];
const router = createRouter({
  history: createWebHistory(),
  routes,
});
export default router;

使用 createWebHistory() 创建基于 HTML5 History API 的历史记录模式。与 Hash 模式类似,但提供了更为标准的 URL 形式。

3. Abstract 模式

Abstract 模式是一种用于非浏览器环境的路由模式,例如在 Node.js 服务器端渲染时使用。这种模式不依赖于浏览器的历史记录 API,因此可以在任何 JavaScript 环境中运行。

语法:history: createMemoryHistory()

import { createRouter, createMemoryHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
];
const router = createRouter({
  history: createMemoryHistory(),
  routes,
});
export default router;

通过 createMemoryHistory() 创建一个不依赖浏览器历史记录 API 的路由历史模式,适用于特定的环境,如服务器端渲染。

四、注意事项


  • 在使用 HTML5 History 模式时,务必确保服务器正确配置,否则用户直接访问一个子路由可能会遇到 404 错误。
  • Hash 模式虽然 URL 看起来不够优雅,但它无需服务器端配置,适用于快速原型开发和受限的服务器环境。
  • Abstract 模式通常用于服务器端渲染等特殊场景,不适用于常规的浏览器环境。

五、结语


Vue RouterVue3 中支持 Hash 模式、History 模式和 Abstract 模式。每种模式都有其适用场景和优缺点。在实际开发中,应根据项目需求和部署环境选择合适的模式。对于大多数现代 web 应用,推荐使用 History 模式以获得更好的用户体验和 SEO 优化效果。同时,需要注意服务器配置问题,以确保在 History 模式下刷新页面时不会出现 404 错误。


参考文章:

  • 《Vue Router》

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/140953290

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThreadLocal 详解(三)内存泄露原因,以及强弱引用

1、ThreadLocal内存泄漏 在Threadlocal的内部静态类中Entry将Threadlocal作为一个key&#xff0c;值作为value保存&#xff0c;他继承WeakReference&#xff0c;super(k)&#xff0c;代表了Threadlocal对象是一个弱引用&#xff1b; static class Entry extends WeakReference…

mysql中B+树的数据存储

B树索引基础分析 B树的定义 B树是一种自平衡的树形数据结构&#xff0c;常用于数据库和操作系统的索引结构。它具有以下特点&#xff1a; 所有数据都存储在叶子节点&#xff0c;非叶子节点仅存储键值和子节点的指针。 叶子节点之间通过指针相互连接&#xff0c;形成一个有序链…

机器视觉应用基础: 工业镜头

文章转载自机器视觉应用基础: 工业镜头-工业相机镜头选型-少有人走的路 (skcircle.com) 工业镜头相当于人眼的晶状体&#xff0c;如果没有晶状体&#xff0c;人眼看不到任何物体&#xff1b;如果没 有镜头&#xff0c;那么摄像头所输出的图像&#xff1b;就是白茫茫的一片&…

职场办公人必备网站-办公人导航

“办公人导航”是一个综合性的网址导航网站&#xff0c;专门收录和分享各种优质的办公资源和工具。它涵盖了常用网站、在线工具、资源查找、素材查找、在线学习、在线影视、资讯信息、AI工具集等内容&#xff0c;是一个职场办公人必备的网址导航网站。办公人导航-实用的办公生活…

XJTUSE-离散数学-集合

基本概念 集合的包含与相等&#xff0c;如子集幂集&#xff1a;以A的所有子集组成的集合称为A的幂集AB <> 集合的基本运算 基本运算证明会考 交运算并运算补运算差运算&#xff1a;A \ B 环和运算&#xff1a;环积运算&#xff1a; 集合的其他表示方法 文图表示法 …

反向传播与梯度累积

反向传播算法&#xff1a;loss.backward()的实现细节 向前传播&#xff1a;输入数据得到预测结果。向后传播&#xff1a;计算梯度加更新参数。反向传播&#xff1a;计算梯度 计算图 计算图 有向无环图 基本运算 节点&#xff1a;变量节点 & 计算节点有向边&#xff1…

AI赋能医疗:应用场景丰富,智慧医疗进入大趋势!

在《超越想象的 GPT 医疗》一书开篇中描绘了一个虚构场景&#xff1a;面对患者病情突然恶化&#xff0c;医学住院实习生克里斯腾陈通过和 GPT-4 对话&#xff0c;完成了对患者的救治、得到了心理安慰、并为患者向保险公司申请了授权&#xff0c;后续在查房中&#xff0c;还为肿…

【MySQL】数据基本的增删改查操作

新增数据&#xff08;Create&#xff09; 在MySQL中&#xff0c;增加数据的操作主要使用 INSERT 语句。下面我们将分为两部分&#xff1a;单行数据插入和多行数据插入。 一、单行数据插入 全列插入&#xff1a; 当你要插入一行数据到表中并且要提供所有列的值时&#xff0c;可…

工业互联网产教融合实训基地解决方案

一、引言 随着“中国制造2025”战略的深入实施与全球工业4.0浪潮的兴起&#xff0c;工业互联网作为新一代信息技术与制造业深度融合的产物&#xff0c;正引领着制造业向智能化、网络化、服务化转型。为培养适应未来工业发展需求的高素质技术技能人才&#xff0c;构建工业互联网…

较新版本Cesium使用本地源码编译打包

0 写作背景 较新版本的Cesium&#xff08;1.100版本及以后&#xff09;在代码结构上做了一定的调整&#xff0c;打包方式也随之发生了一些变化。 Starting with version 1.100, CesiumJS will be published alongside two smaller packages cesium/engine and cesium/widgets …

JAVA中的volatile和synchronized关键字详解

1.volatile 保证可见性&#xff1a;当一个变量被声明为volatile&#xff0c;编译器和运行时都会注意到这个变量是共享的&#xff0c;并且每次使用这个变量时都必须从主内存中读取&#xff0c;而不是从线程的本地缓存或者寄存器中读取。这确保了所有线程看到的变量值都是最新的…

【数据结构】树型结构详解 + 堆的实现(c语言)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 一、树 1.树的概念与结构 2.树的相关术语 3.树的表示方法 4.树型结构的实际应用场景 二、二叉树 1.二叉树的概念与结构 2.二叉树的…

RabbitMQ再回首--往事如梦

这文章你就读吧&#xff0c;越读越&#x1f978;&#xff0c;一读一个不吱声 可靠的&#x1f430;警官&#xff1a;rabbitMQ&#xff0c;功能全面&#xff0c;不丢数据&#xff0c;体量小&#xff0c;容易堆积 声明exchange channel . exchangeDeclare ( String exchange , …

在EA框架下增强开展AI项目研发

1.在战略规划阶段实施AI模型选择的工作 有许多可用的 AI 模型&#xff0c;企业架构师必须从监督学习模型、无监督学习模型、强化学习模型和深度学习模型中选择正确的模型。这些模型支持跨不同领域的各种应用。**企业架构师应根据 AI 项目的具体要求选择合适的 AI 模型和架构。*…

WeiXin Video

WeiXin Video 微信视频号电脑版本流程 菜单 - 视频号直播工具 &#xff08;没有下载&#xff0c;需要下载&#xff0c;这里不写了&#xff09; 找到菜单里面的【视频号】 进入一个新的页面&#xff08;第①个页签&#xff09;&#xff0c;点击【头像】 进入一个新的页面&#…

编程深水区之并发⑥:C#的线程池

绝大多数情况下&#xff0c;我们都应该使用CLR线程池&#xff0c;而不是直接操作Thread&#xff0c;本章节介绍直接操作线程池的ThreadPool&#xff0c;但实际开发中也很少直接使用它。 一、CLR和线程池 1.1 CLR的主要工作 CLR&#xff08;Common Language Runtime&#xff0…

在Docker上部署Ollama+AnythingLLM完成本地LLM Agent部署

在当今快速发展的人工智能领域&#xff0c;本地部署大型语言模型&#xff08;LLM&#xff09;Agent正逐渐成为企业和研究者关注的焦点。本地部署不仅能够提供更高的数据安全性和隐私保护&#xff0c;还能减少对外部服务的依赖&#xff0c;提高响应速度和系统稳定性。本文将介绍…

04 Haproxy搭建Web集群

4.1 案例分析 4.1.1 案例概述 Haproxy是目前比较流行的一种群集调度工具&#xff0c;同类群集调度工具有很多&#xff0c;如LVS和Nginx。相比较而言&#xff0c;LVS 性能最好&#xff0c;但是搭建相对复杂;Nginx 的upstream模块支持群集功能&#xff0c;但是对群集节点健康检…

PHP反序列化POP链构造:理解与利用

如有疑惑&#xff0c;尽管提问&#xff1b;如有错误&#xff0c;请您指正&#xff01; 以[MRCTF2020]Ezpop为例&#xff1a; 本题的入口&#xff1f;通过pop传入序列化数据 本题的出口&#xff1f;通过include包含flag.php 我们要传入什么&#xff1f;序列化数据&#xff0c…

Can‘t use openai in command prompt

题意&#xff1a;在命令提示符&#xff08;Command Prompt&#xff09;中不能使用OpenAI 问题背景&#xff1a; I know this is a super basic question but pls help me with this problem I have properly installed the openai with the nodejs library using npm install …