【Vue3】深入理解Vue3路由器的工作原理to的两种写法

news2025/1/16 1:50:38

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
请添加图片描述

文章目录

  • 🍋路由器的核心概念
  • 🍋history模式
  • 🍋Hash模式
  • 🍋to的两种写法
  • 🍋总结

Vue3提供了一个强大而灵活的路由器,它能够帮助我们构建单页面应用程序(SPA)并管理页面之间的导航。本文将深入探讨Vue3路由器的工作原理,包括其核心概念、使用方法以及一些高级技巧。

🍋路由器的核心概念

在Vue3中,路由器的核心概念包括路由器实例、路由器选项、路由表、路由视图和导航守卫。

  • 路由器实例:我们可以通过创建一个路由器实例来启动Vue3的路由器。路由器实例包含了路由器的配置选项,例如路由表、路由模式(hash或history)等。

  • 路由器选项:路由器选项是一个包含路由配置的对象。它定义了应用程序的路由规则,包括路由路径和对应的组件。

  • 路由表:路由表是一个映射路由路径和组件的配置对象。它告诉路由器在匹配到特定路径时应该渲染哪个组件。

  • 路由视图:路由视图是一个用来显示匹配到的路由组件的组件。在Vue3中,我们使用组件来渲染匹配到的组件。

  • 导航守卫:导航守卫是一个可以在路由跳转时进行拦截的函数。我们可以使用导航守卫来实现路由的权限控制、页面加载状态管理等功能。

本节主要介绍的就是history和hash模式,首先我们来看看history模型

🍋history模式

在 history 模式下,Vue Router 使用浏览器提供的 History API 来管理路由状态。这种模式下的 URL 更加友好,不再需要 # 符号。
特点

无 # 符号:history 模式的 URL 更加美观,不含有 # 符号,更符合传统 URL 的表现形式。
需要服务器支持:由于 history 模式使用了 History API,因此需要服务器的支持。在生产环境中,需要配置服务器以支持对所有页面的访问都返回同一个 HTML 文件,以便在路由跳转时正确加载应用程序。

使用场景

需要SEO:对于需要被搜索引擎索引的应用,使用 history 模式更为合适,因为搜索引擎可以正确解析这种形式的 URL。


上节我们使用的就是history模式
在这里插入图片描述

🍋Hash模式

在 hash 模式下,URL 中的 # 符号被用作路由地址与其后面的参数(称为哈希)的分隔符。因此,http://example.com/#/foo 和 http://example.com/#/bar 都属于 hash 模式下的 URL。
特点

兼容性良好:hash 模式的 URL 兼容性较好,因为在大部分浏览器中,改变 URL 中的哈希不会重新加载页面。
简单实现:hash 模式不需要服务器端的额外配置,可以直接在前端实现。

使用场景

静态站点:对于静态站点或不需要SEO的应用,hash 模式是一个简单而有效的选择。

如果我们想用Hash模式,和上一节一样我们导入

import {createWebHashHistory} from 'vue-router'

之后我们修改一下

history:createWebHashHistory(),

运行后的界面的地址栏就会有#了

在这里插入图片描述

🍋to的两种写法

这里或许有人忘了to在哪里出现过吧,提醒一下RouterLink,路由跳转的组件

下面是两种to的写法,具体用哪个具体情况具体分析,效果一样

<RouterLink to="/about" active-class="MT">关于</RouterLink>
<RouterLink :to="{path:'/about'}" active-class="MT">关于</RouterLink>

🍋总结

在开发过程中,可以根据实际需求选择合适的模式来使用

请添加图片描述

挑战与创造都是很痛苦的,但是很充实。

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

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

相关文章

整块代码自动生成、智能括号匹配……CodeGeeX编程提效,功能再升级!

CodeGeeX插件功能持续打磨&#xff0c;希望成为开发者更高效的智能编程工具&#xff0c;提高开发速度和代码质量。今天介绍VSCode中最新的v2.4.0版本插件新功能&#xff0c;让你在编写代码时更加得心应手。 一、新增block代码块生成的设置 CodeGeeX插件中&#xff0c;以往针对…

读西游记第一回:西游记世界格局

天地之数&#xff1a; 元&#xff1a;十二万九千六百岁&#xff08;129600年&#xff09; 1元12会&#xff1a;子、丑、寅、卯、巳、午、未、申、酉、戌、亥。每会18000年。与12地支对应。 亥会期&#xff1a;前5400年混沌期&#xff0c;后5400年&#xff0c;盘古开天辟地&am…

【阿里云系列】-ACK的Java应用POD无法访问云数据库Redis

问题介绍 如下图所示&#xff0c;是ACK集群的POD访问阿里云的云数据库Redis&#xff0c;如何实现访问呢 配置步骤 要实现ACK集群内的所有POD都可以访问云数据库Redis&#xff0c;则需要在Redsi的白名单里增加源IP或网段&#xff0c;如下图所示 注意&#xff1a; 以上添加…

小型校园网配置笔记

1&#xff0c;搭建网络拓扑图 LSW1:三层交换机命令&#xff1a; <Huawei>sys [Huawei]undo info-center enable Info: Information center is disabled. [Huawei]vlan batch 10 20 30 40 100 101 [Huawei]int vlan 10 [Huawei-Vlanif10]ip add 192.168.10.254 24 …

PyTorch之完整的神经网络模型训练

简单的示例&#xff1a; 在PyTorch中&#xff0c;可以使用nn.Module类来定义神经网络模型。以下是一个示例的神经网络模型定义的代码&#xff1a; import torch import torch.nn as nnclass MyModel(nn.Module):def __init__(self):super(MyModel, self).__init__()# 定义神经…

sqllab第九关通关笔记

知识点&#xff1a; 时间盲注&#xff1a;利用休眠时间进行判断是否注入成功利用bp时注意把timeout时间修改一下 首先判断注入类型 构造id1/0 返回正常信息&#xff0c;应该是字符型注入 构造id1 返回正常信息&#xff0c;欸&#xff0c;这就怪了 构造id1 正常显示内容&am…

Lombok简介、使用、工作原理、优缺点

学习目标&#xff1a; 目标 Lombok简介、使用、工作原理、优缺点 学习内容&#xff1a; 内容 定义 Lombok 是一个 Java 库&#xff0c;它提供了很多有用的注解来简化 Java 代码的编写。 作用&#xff1a; 使用 Lombok 可以用一些简洁的注解来自动生成大量常见的 Java 代码&a…

EI会议----2024年控制技术、自动化与绿色城市规划国际学术会议(TAUGCP 2024)

EI会议----2024年控制技术、自动化与绿色城市规划国际学术会议(TAUGCP 2024) 2024 International Conference on Control Technology, Automation and Green Urban Planning(TAUGCP 2024) 大会主题&#xff1a;&#xff08;主题包括但不限于这些,更多详细主题请咨询苏老师&am…

缓存的使用

文章目录 1.为什么要有缓存&#xff1f;2.缓存使用场景3.缓存分类4.缓存使用模式5.淘汰策略6.缓存的崩溃与修复7.缓存最佳实践参考文献 1.为什么要有缓存&#xff1f; 数据访问具有局部性&#xff0c;符合二八定律&#xff1a;80% 的数据访问集中在 20% 的数据上&#xff0c;这…

Nuxt3: useFetch使用过程常见一种报错

一、问题描述 先看一段代码&#xff1a; <script setup> const fetchData async () > {const { data, error } await useFetch(https://api.publicapis.org/entries);const { data: data2, error: error2 } await useFetch(https://api.publicapis.org/entries);…

展会邀约 | 加速科技将携重磅产品亮相SEMICON China 2024

SEMICON China 2024将于3月20日-3月22日在上海新国际博览中心隆重举行。展会期间&#xff0c;加速科技将携重磅产品高性能数模混合信号测试机ST2500EX、LCD Driver测试机Flex10K-L、高密度数模混合信号测试系统ST2500E、高性能数模混合信号测试系统ST2500A亮相此次行业盛会&…

[Java、Android面试]_02_HashMap的原理

本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料&#xff0c;感兴趣的朋友可收藏关注。由于时间有限&#xff0c;只能每天整理一点&#xff0c;分享一点儿&#xff01; 现分享如下&#xf…

vue3/vue2若依框架对比,点击新增编辑跳转到新页面(新增编辑共用代码)

vue2若依框架&#xff1a; router里面定义好&#xff0c;编辑里面添加一个id {path: /filmManagement,component: Layout,hidden: true,redirect: noredirect,children: [{path: editFilmDetail,component: () > import(/views/filmManagement/editFilmDetail),name: editFi…

【Mac】鼠标控制\移动\调整窗口大小BBT|边缘触发调整音量\切换桌面

一直在 win 习惯了通过鼠标的侧键来控制窗口的位置、大小&#xff0c;现在找到心的解决方案了&#xff0c;通过 BBT 设置侧键按下\抬起几颗。 以下解决方案的截图&#xff0c;其中还包括了其他操作优化方案&#xff1b; 滚轮配合 cmd 键调节页面大小&#xff1b;配合 option 键…

探索C++中的动态数组:实现自己的Vector容器

&#x1f389;个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名乐于分享在学习道路上收获的大二在校生 &#x1f648;个人主页&#x1f389;&#xff1a;GOTXX &#x1f43c;个人WeChat&#xff1a;ILXOXVJE &#x1f43c;本文由GOTXX原创&#xff0c;首发CSDN&…

算法思想总结:双指针算法

一、移动零 . - 力扣&#xff08;LeetCode&#xff09; 移动零 该题重要信息&#xff1a;1、保持非0元素的相对位置。2、原地对数组进行操作 思路&#xff1a;双指针算法 class Solution { public:void moveZeroes(vector<int>& nums){int nnums.size();for(int cur…

Elasticsearch:在本地使用 Gemma LLM 对私人数据进行问答

在本笔记本中&#xff0c;我们的目标是利用 Google 的 Gemma 模型开发 RAG 系统。 我们将使用 Elastic 的 ELSER 模型生成向量并将其存储在 Elasticsearch 中。 此外&#xff0c;我们将探索语义检索技术&#xff0c;并将最热门的搜索结果作为 Gemma 模型的上下文窗口呈现。 此外…

人工智能迷惑行为大赏!

目录 人工智能迷惑行为大赏 一&#xff1a;人工智能的“幽默”瞬间 1. 图像识别出现AI的极限 2. 小批量梯度下降优化器 3. 智能聊天机器人的冰雹问题 4. 大语言模型-3经典语录 二&#xff1a;技术原理探究 1. 深度学习 2. 机器学习 3. 自然语言处理 4. 计算机视觉 三…

java八股文 笔记(持续更新中~)

1 Redis 2Mysql 3JVM 4java基础底层 5 spring 6 微服务 7.......(持续更新) One:Redis篇 1.穿透 2&#xff1a;击穿 3&#xff1a;雪崩 3 33 4:双写一致 5.持久化 2 JVM: 2&#xff1a; 3&#xff1a; 4&#xff1a; 5&#xff1a; 6&#xff1a; 7&#xff…

学生时期学习资源同步-1 第一学期结业考试题1

原创作者&#xff1a;田超凡&#xff08;程序员田宝宝&#xff09; 版权所有&#xff0c;引用请注明原作者&#xff0c;严禁复制转载