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

vue的路由的两种模式 hash与history 详细讲解

在这里插入图片描述

文章目录

    • 1. Hash 模式
      • 工作原理
      • 优点
      • 缺点
      • 使用示例
    • 2. History 模式
      • 工作原理
      • 优点
      • 缺点
      • 服务器配置示例
      • 使用示例
    • 总结


Vue Router 是 Vue.js 的官方路由管理器,它支持多种路由模式,其中最常用的两种是 hash 模式和 history 模式。下面我们详细讲解这两种模式的特点及使用场景。

1. Hash 模式

工作原理

Hash 模式是基于 URL 的 hash(锚点)部分实现的,所有的路由都以 # 开头,浏览器不会向服务器发送 hash 后面的内容。URL 的变化只会影响 hash 部分,适合用于不需要服务器支持的简单应用。

示例 URL:

http://example.com/#/home

优点

  • 兼容性好:Hash 模式在所有浏览器中都得到了广泛支持,包括 IE9 及更早的版本。
  • 无需服务器配置:由于 hash 不会被发送到服务器,应用可以直接运行在任何静态服务器上。

缺点

  • SEO 不友好:搜索引擎一般无法抓取 hash 后面的内容,可能会影响 SEO。
  • 用户体验差:浏览器的后退和前进按钮不够直观,用户体验上略逊于 history 模式。

使用示例

import Vue from 'vue';
import Router from 'vue-router';
import Home from './components/Home.vue';Vue.use(Router);const router = new Router({mode: 'hash',routes: [{ path: '/', component: Home },{ path: '/about', component: () => import('./components/About.vue') },]
});export default router;

2. History 模式

工作原理

History 模式是利用 HTML5 的 History API 来实现的,允许你在不重新加载页面的情况下改变 URL。URL 中不会有 hash,路由看起来更干净。

示例 URL:

http://example.com/home

优点

  • SEO 友好:由于 URL 中不包含 hash,搜索引擎能够更好地抓取页面内容。
  • 更好的用户体验:URL 更美观,符合用户的直觉,后退和前进按钮的行为也更自然。

缺点

  • 需要服务器支持:需要进行服务器配置,确保刷新页面时,服务器返回的是应用的入口 HTML 文件,而不是 404 错误。

服务器配置示例

对于常见的静态服务器,如 Nginx,你可以使用以下配置:

location / {try_files $uri $uri/ /index.html;
}

使用示例

import Vue from 'vue';
import Router from 'vue-router';
import Home from './components/Home.vue';Vue.use(Router);const router = new Router({mode: 'history',routes: [{ path: '/', component: Home },{ path: '/about', component: () => import('./components/About.vue') },]
});export default router;

总结

  • Hash 模式:适合不需要服务器支持的简单应用,兼容性好,但 SEO 和用户体验稍差。
  • History 模式:提供更好的 SEO 和用户体验,但需要服务器的支持。

选择哪种模式取决于你的项目需求、目标用户以及服务器环境。如果你需要考虑 SEO,建议使用 history 模式;如果希望快速部署,或者兼容老旧浏览器,可以选择 hash 模式。

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

相关文章:

vue的路由的两种模式 hash与history 详细讲解

文章目录 1. Hash 模式工作原理优点缺点使用示例 2. History 模式工作原理优点缺点服务器配置示例使用示例 总结 Vue Router 是 Vue.js 的官方路由管理器,它支持多种路由模式,其中最常用的两种是 hash 模式和 history 模式。下面我们详细讲解这两种模式的…...

【Linux操作系统】进程间通信之匿名管道与命名管道

目录 一、进程间通信的目的:二、进程间通信的种类三、什么是管道四、匿名管道(共同祖先的进程之间)1.匿名管道的使用2.匿名管道举例3.匿名管道的原理4.管道特点5.管道的读写规则1. 当管道内没有数据可读时2.当管道满的时候3.管道端被关闭4.数…...

慢sql优化和Explain解析

要想程序跑的快,sql优化不可懈怠!今日来总结一下常用的慢sql的分析和优化的方法。 1、慢sql的执行分析: 大家都知道分析一个sql语句执行效率的方法是用explain关键词: 举例:sql:select * from test where bussiness_…...

ALIGN_ Tuning Multi-mode Token-level Prompt Alignment across Modalities

文章汇总 当前的问题 目前的工作集中于单模提示发现,即一种模态只有一个提示,这可能不足以代表一个类[17]。这个问题在多模态提示学习中更为严重,因为视觉和文本概念及其对齐都需要推断。此外,仅用全局特征来表示图像和标记是不…...

【Java SE】代码注释

代码注释 注释(comment)是用于说明解释程序的文字,注释的作用在于提高代码的阅读性(可读性)。Java中的注释类型包括3种,分别是: 单行注释多行注释文档注释 ❤️ 单行注释 基本格式&#xff…...

如何在算家云搭建Llama3-Factory(智能对话)

一、Llama3-Factory 简介 当地时间 4 月 18 日,Meta 在官网上宣布公布了旗下最新大模型 Llama 3。目前,Llama 3 已经开放了 80 亿(8B)和 700 亿(70B)两个小参数版本,上下文窗口为 8k。Llama3 是…...

操作数据表

创建表 创建表语法: CREATE TABLE table_name ( field1 datatype [COMMENT 注释内容], field2 datatype [COMMENT 注释内容], field3 datatype ); 注意: 1. 蓝色字体为关键字 2. CREATE TABLE 是创建数据表的固定关键字,表…...

C# 实现进程间通信的几种方式(完善)

目录 引言 一、基本概念 二、常见的IPC方法 1. 管道(Pipes) 2. 共享内存(Shared Memory) 3. 消息队列(Message Queues) 4. 套接字(Sockets) 5. 信号量(Semaphore…...

MySQL Workbench Data Import Wizard:list index out of range

MySQL Workbench的Data Import Wizard功能是用python实现的,MySQL Workbench自带了一个python,数据导入的时候出现错误提示 22:55:51 [ERR][ pymforms]: Unhandled exception in Python code: Traceback (most recent call last): File "D…...

微信支付宝小程序SEO优化的四大策略

在竞争激烈的小程序市场中,高搜索排名意味着更多的曝光机会和潜在用户。SEO即搜索引擎优化,对于小程序而言,主要指的是在微信小程序商店中提高搜索排名,从而增加曝光度和用户访问量。有助于小程序脱颖而出,提升品牌知名…...

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion论文阅读笔记

AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion 论文阅读笔记 这是ECCV2024的论文,作者单位是是港中文和上海AI Lab 文章提出了一个叫AutoDIR的方法,包括两个关键阶段,一个是BIQA,基于vision-language…...

SQLite 数据库设计最佳实践

SQLite特点 SQLite是一款功能强大的 轻量级嵌入式数据库 ,具有以下显著特点: 体积小 :最低配置仅需几百KB内存,适用于资源受限环境。 高性能 :访问速度快,运行效率高于许多开源数据库。 高度可移植 :兼容多种硬件和软件平台。 零配置 :无需复杂设置,开箱即用。 自给自…...

【论文精读】ID-like Prompt Learning for Few-Shot Out-of-Distribution Detection

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 注:下文…...

Android 10.0 根据包名禁用某个app的home事件

1.前言 在10.0的系统rom定制化开发中,在某些app中,需要禁用home事件,在普通的app中又无法 禁用home事件,所以就需要从系统中来根据包名禁用home事件了,接下来分析下 系统中处理home事件的相关流程 2.根据包名禁用某个app的home事件的核心类 frameworks/base/services/c…...

Rust 文档生成与发布

目录 第三节 文档生成与发布 1. 使用 RustDoc 生成项目文档 1.1 RustDoc 的基本使用 1.2 文档注释的格式与实践 1.3 生成文档的其他选项 1.4 在 CI/CD 中生成文档 2. 发布到 crates.io 的步骤与注意事项 2.1 创建 crates.io 账户 2.2 配置 Cargo.toml 2.3 生成发布版…...

【C++动态规划】有效括号的嵌套深度

本文涉及知识点 C动态规划 LeetCode1111. 有效括号的嵌套深度 有效括号字符串 定义:对于每个左括号,都能找到与之对应的右括号,反之亦然。详情参见题末「有效括号字符串」部分。 嵌套深度 depth 定义:即有效括号字符串嵌套的层…...

2024年优秀的天气预测API

准确、可操作的天气预报对于许多组织的成功至关重要。 事实上,在整个行业中,天气条件会直接影响日常运营,包括航运、按需、能源和供应链(仅举几例)。 以公用事业为例。根据麦肯锡的数据,在 1.4 年的时间里…...

Android和iOS有什么区别?

Android 和 iOS 有以下区别: 开发者与所属公司: Android:由谷歌公司开发以及开放手机联盟维护。它是基于 Linux 内核和其他开源软件的修改版本,代码开源程度较高,许多厂商都可以基于 Android 源代码进行深度定制和开发…...

NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用

政务数据共享平台的建设正致力于消除“信息孤岛”现象,打破“数据烟囱”,实现国家、省、市及区县数据的全面对接与共享。省市平台的“级联对接”工作由多级平台共同构成,旨在满足跨部门、跨层级及跨省数据共享的需求,推动数据流通…...

Spring Cloud Sleuth(Micrometer Tracing +Zipkin)

分布式链路追踪 分布式链路追踪技术要解决的问题,分布式链路追踪(Distributed Tracing),就是将一次分布式请求还原成调用链路,进行日志记录,性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节…...

人工智能:机遇与挑战

人工智能(AI)作为当今世界科技发展的前沿领域,正在以前所未有的速度和规模影响着我们的生活和工作方式。AI技术的应用前景广阔,从医疗健康到金融服务,从教育到交通,再到娱乐和家庭生活,AI正在逐…...

mac电脑设置crontab定时任务,以及遇到的问题解决办法

crontab常用命令 crontab -u user:用来设定某个用户的crontab服务; crontab file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入&#xf…...

Backtrader 数据篇 02

Backtrader 数据篇 本系列是使用Backtrader在量化领域的学习与实践,着重介绍Backtrader的使用。Backtrader 中几个核心组件: Cerebro:BackTrader的基石,所有的操作都是基于Cerebro的。Feed:将运行策略所需的基础数据…...

视频转场素材资源网站分享

视频剪辑者常常为找不到合适的转场素材而苦恼。合适的转场素材能让视频更流畅,给观众带来惊喜。下面就为大家介绍几个宝藏网站,提供丰富的转场剪辑素材,让你的视频瞬间高大上。 蛙学网 首先重磅推荐蛙学网,堪称视频素材界的“翘楚…...

二十二、MySQL 8.0 主从复制原理分析与实战

文章目录 一、复制(Replication)1、什么是复制2、复制的方式3、复制的数据同步类型3.1、异步复制3.2、半同步复制3.3、设计理念:复制状态机——几乎所有的分布式存储都是这么复制数据的 4、基于binlog位点同步的主从复制原理4.1、异步复制示例…...

基于OSS搭建在线教育视频课程分享网站

OSS对象存储服务是海量、安全、低成本、高持久的存储服务。适合于存储大规模非结构化数据,如图片、视频、备份文件和容器/虚拟机镜像等。 安装nginx wget https://nginx.org/download/nginx-1.20.2.tar.gz yum -y install zlib zlib-devel gcc-c pcre-devel open…...

CentOS 7 下升级 OpenSSL

升级openssh,下载:https://download.csdn.net/download/weimeilayer/89935114 上传到服务器,然后执行命令 rpm -Uvh *.rpm --nodeps --force安装依赖 yum -y install gcc perl make zlib-devel perl-CPAN下载安装包:https://github.com/ope…...

线上 Dump

优质博文:IT-BLOG-CN 一、简介 机器宕机或者请求很慢最常出现的几种问题:针对代码bug或者qps过高造成的。 【1】cpu过高致内存耗尽OOM,堆区对象回收不及时cpu被打满 【2】死锁抢用资源导致cpu过高致耗尽 【3】内存泄漏: 堆内存由…...

AcWing 1303:斐波那契前 n 项和 ← 矩阵快速幂加速递推

【题目来源】https://www.acwing.com/problem/content/1305/http://poj.org/problem?id3070【题目描述】 大家都知道 数列吧,。现在问题很简单,输入 和 ,求 的前 项和 。【输入格式】 共一行,包含两个整数 和 。【输出格式】…...

2024 Rust现代实用教程:1.2编译器与包管理工具以及开发环境搭建

文章目录 一、Rust的编译器rustc二、开发环境搭建三、Rust的包管理工具Cargo四、项目结构1.Cargo.toml文件2.创建一个可执行文件项目3.创建一个库项目 参考 一、Rust的编译器rustc 查看版本 rustc-version编译生成二进制文件 rustc -o output filename filename.rs编译生成库…...

金山建设机械网站/百度服务电话在线人工

LLBL Gen作为项目开发的ORM框架,选择.NET Remoting作为分布式技术框架。一直也很想把ERP框架从.NET Remoting升级到WCF,只是关于方法重载的配置方法需要特殊处理。举例说明如下 public interface IEmployeeManager {EmployeeEntity GetEmployee(System.I…...

晋中企业网站建设/百度客服电话号码

前言 相信很多同学都会有这样的感受,前三天刚刚复习的知识点,今天问的时候怎么就讲不出个所以然了呢? 本文的目的就是致力于帮助大家尽可能的建立Android知识体系,希望大家会喜欢~ 首先我们来看一下组件化项目和传统项目的区别:…...

移动端响应式网站怎么做/网页推广怎么做

原文地址为:curl 请求指定host 的 URL...

网站报价清单/网站搜索引擎优化案例

判断集合元素唯一的原理3.1 ArrayList 的 contains 方法判断元素是否重复原理ArrayList 的 contains 方法会使用调用方法时,传入的元素的 equals 方法依次与集合中的旧元素 所比较,从而根据返回的布尔值判断是否有重复元素。此时,当 ArrayLis…...

政府网站信息建设/应用商店下载安装

SpringBootApplication public class ConfigApp {public static void main(String[] args) {SpringApplication.run(ConfigApp.class, args);} }以上为interface、class、enum等即可 复制上面的代码:选择上面代码 ctrlc 或右击鼠标复制即可打开开发软件idea或eclipse选中一个…...

提供微网站制作多少钱/志鸿优化设计答案

控制转移指令用于控制程序的流向,所控制的范围即为程序存储器区间,MCS-51系列单片机的控制转移指令相对丰富,有可对64kB程序空间地址单元进行访问的长调用、长转移指令,也有可对2kB字节进行访问的绝对调用和绝对转移指令&#xff…...