在这里插入图片描述

🤍 前端开发工程师、技术日更博主、已过CET6
🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1
🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》
🍚 蓝桥云课签约作者、上架课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入门到实战全面掌握 uni-app》

随着前端技术的不断发展,单页面应用(SPA)变得越来越流行。为了更好地管理页面间的导航和状态,Vue.js 生态系统中的 Vue-Router 也不断进化。本文将介绍 Vue-Router 4.0 的新特性、使用方法以及与前代版本的对比。

一、Vue-Router 4.0 新特性

1. Composition API 支持

Vue-Router 4.0 完全支持 Vue 3 的 Composition API,这使得路由配置和逻辑更加模块化和可维护。

2. 更简洁的 API 设计

新版本的 Vue-Router 简化了 API 设计,移除了一些过时的方法和选项,使得路由配置更加直观。

3. 基于 Proxy 的路由匹配

Vue-Router 4.0 使用 Proxy 实现了更高效的路由匹配,提升了性能。

4. 新的导航守卫

引入了新的导航守卫,如 beforeEachbeforeResolveafterEach,提供了更细粒度的路由控制。

5. 支持 TypeScript

Vue-Router 4.0 完全支持 TypeScript,提供了更好的类型推断和开发体验。

二、快速上手

1. 安装

首先,你需要安装 Vue-Router 4.0:

npm install vue-router@4

2. 创建路由实例

创建一个 router.js 文件,配置你的路由:

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;

3. 在 Vue 应用中使用路由

在你的主 Vue 文件中引入并使用路由:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';const app = createApp(App);
app.use(router);
app.mount('#app');

三、导航守卫

1. 全局守卫

router.js 中配置全局守卫:

router.beforeEach((to, from, next) => {
// 导航逻辑...
next();
});

2. 组件内守卫

在组件内部使用路由守卫:

import { onBeforeRouteEnter, onBeforeRouteUpdate, onBeforeRouteLeave } from 'vue-router';export default {
// ...
setup() {
onBeforeRouteEnter((to, from, next) => {
// ...
next();
});
onBeforeRouteUpdate((to, from) => {
// ...
});
onBeforeRouteLeave((to, from, next) => {
// ...
next();
});
}
};

四、总结

Vue-Router 4.0 是为 Vue 3 设计的新一代路由管理器,它带来了更简洁的 API、更好的性能和更强大的功能。无论是对于新手还是资深开发者,Vue-Router 4.0 都将提供更好的开发体验和更高的开发效率。

随着前端技术的不断进步,Vue-Router 也将继续发展,以满足日益增长的前端开发需求。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vuhub Corrosion2靶场攻略

靶场下载: 下载地址:https://download.vulnhub.com/corrosion/Corrosion2.ova 靶场使用: 我这里是使用Oracle VirtualBox虚拟机打开靶场,使用VMware打开攻击机kali,要使这两个机器能互相通信,需要将这两…

定制开发开源AI智能名片S2B2C商城小程序的特点、应用与发展研究

摘要:本文聚焦定制开发开源AI智能名片S2B2C商城小程序,深入剖析其技术特点、功能优势。通过分析在实体店与线上营销、新零售闭环生态构建、智慧场景赋能以及微商品牌规范化运营等方面的应用,探讨其发展趋势。旨在为营销技术专家中的营销创客及…

ulimit参数使用详细总结

目录 1. 基本介绍 1.1 核心功能 1.2 作用范围 1.3 限制类型 2. 基本语法 3. 常用选项​ 3.1 常见options 3.2 查看当前限制 4. 核心概念 4.1 软限制(Soft Limit) 4.2 硬限制(Hard Limit) 5. 修改限制 5.1 临时修改 …

基于ASIC架构的AI芯片:人工智能时代的算力引擎

基于ASIC架构的AI芯片:人工智能时代的算力引擎在深度学习模型参数量呈指数级增长、训练与推理需求爆炸式发展的今天,通用处理器(CPU、GPU)在能效比和计算密度上的局限日益凸显。基于ASIC(Application-Specific Integra…

Linux信号机制:从硬件中断到用户态处理

当你在终端按下 CtrlC 时,一个简单的组合键触发了操作系统最精妙的异步通信机制。这种跨越硬件与软件的协作,正是Linux信号系统的精髓所在。本文将带你深入探索信号处理的全过程,从CPU中断到用户态函数调用,揭示Linux最强大的进程…

C语言基础:动态申请练习题

1. 动态申请一个具有10个float类型元素的内存空间&#xff0c;从一个已有的数组中拷贝数据&#xff0c;并找出第一次出现 12.35 的下标位置&#xff0c;并输出。#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {// 动态申请10个flo…

MATLAB 实现 SRCNN 图像超分辨率重建

MATLAB 实现 SRCNN 图像超分辨率重建 MATLAB代码实现&#xff0c;用于基于三层卷积神经网络的图像超分辨率重建。代码参考了多个来源&#xff0c;结合了SRCNN的典型实现步骤。 1. MATLAB代码实现 % 超分辨率卷积神经网络(SRCNN)的测试代码 % 参考文献&#xff1a;Chao Dong, Ch…

知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例

知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例 flyfish 知识蒸馏 - 蒸的什么 知识蒸馏 - 通过引入温度参数T调整 Softmax 的输出 知识蒸馏 - 对数函数的单调性 知识蒸馏 - 信息量的公式为什么是对数 知识蒸馏 - 根据真实事件的真实概率分布对其进行编码 知识蒸馏 - …

从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战

一、语义化标签进阶&#xff1a;重构页面结构的「逻辑语言」 在 HTML5 的舞台上&#xff0c;语义化标签是熠熠生辉的主角&#xff0c;它们为网页赋予了清晰的逻辑结构&#xff0c;使其更易被搜索引擎理解和被开发者维护。其中&#xff0c;<section>与<article>标签…

标准七层网络协议和TCP/IP四层协议的区别

分别是什么? OSI七层协议是国际标准组织制定的标准协议。其中七层分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 TCP/IP协议是美国军方在后期网络技术的发展中提出来的符合目前现状的协议。其中四层分别是网络接口层对应七层中的物理层和数据链路层,…

前端面试手撕题目全解析

以下是前端面试中常遭遇的“手撕”基础题目汇总&#xff0c;涵盖 HTML→JS→Vue→React&#xff0c;每题附经典实现&#xff0f;原理解析&#xff0c;可现场答题或后端总结。 HTML 基础题 &#x1f4dd; 语义化卡片&#xff08;Semantic Card ARIA&#xff09; <article cl…

道格拉斯-普克算法 - 把一堆复杂的线条变得简单,同时尽量保持原来的样子

道格拉斯-普克算法 - 把一堆复杂的线条变得简单&#xff0c;同时尽量保持原来的样子 flyfish 道格拉斯-普克算法&#xff08;Douglas-Peucker Algorithm解决的问题其实很日常&#xff1a;把一堆复杂的线条&#xff08;比如地图上的道路、河流&#xff0c;或者GPS记录的轨迹&…

团购商城 app 系统架构分析

一、引言 团购商城 APP 作为一种融合了电子商务与团购模式的应用程序&#xff0c;近年来在市场上取得了显著的发展。它为用户提供了便捷的购物体验&#xff0c;同时也为商家创造了更多的销售机会。一个完善且高效的系统架构是保障团购商城 APP 稳定运行、提供优质服务的基础。本…

【AI平台】n8n入门7:本地n8n更新

✅0、前言 目标&#xff1a;本地n8n部署后&#xff0c;有新版本&#xff0c;然后进行更新。官方文档&#xff1a;Docker | n8n Docs特别说明&#xff1a; n8n镜像更新后&#xff0c;容器重建&#xff0c;所以之前在n8n配置的东西&#xff0c;就莫有了&#xff0c;工作流提前导…

还在使用Milvus向量库?2025-AI智能体选型架构防坑指南

前言说明&#xff1a;数据来源&#xff1a;主要基于 Milvus&#xff08;v2.3&#xff09;和 Qdrant&#xff08;v1.8&#xff09;的最新稳定版&#xff0c;参考官方文档、GitHub Issues、CNCF报告、以及第三方评测&#xff08;如DB-Engines、TechEmpower&#xff09;。评估原则…

3-verilog的使用-1

verilog的使用-1 1.判断上升沿 reg s_d0; reg s_d1; wire signal_up ; //判断信号的上升沿 assign signal_up (~touch_key_d1) & touch_key_d0; always (posedge clk or negedge rst_n) beginif(rst_n 1b0) begins_d0< 1b0;s_d1< 1b0;endelse begins_d0&…

ESXI虚拟交换机 + H3C S5120交换机 + GR5200路由器组网笔记

文章目录一、组网拓扑与核心逻辑1. 拓扑结构2. 核心逻辑二、详细规划方案1. VLAN 与 IP 地址规划2. 设备连接规划三、配置步骤1. H3C S5120 交换机配置&#xff08;VLAN 与端口&#xff09;2. H3C GR5200 路由器配置&#xff08;路由、网关、NAT&#xff09;3. ESXi 虚拟交换机…

python的驾校培训预约管理系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具&#xff1a;Navicat/SQLyog等都可以 该系统通…

webrtc弱网-QualityScaler 源码分析与算法原理

一. 核心功能QualityScaler 是 WebRTC 中用于动态调整视频编码质量的模块&#xff0c;主要功能包括&#xff1a;QP 监控&#xff1a;持续监测编码器输出的量化参数&#xff08;QP&#xff09;丢帧率分析&#xff1a;跟踪媒体优化和编码器导致的丢帧情况自适应决策&#xff1a;根…

Maven 快照(SNAPSHOT)

Maven 快照(SNAPSHOT) 引言 Maven 快照(SNAPSHOT)是 Maven 中的一个重要概念,主要用于版本管理。它允许开发者在构建过程中使用尚未发布的版本。本文将详细介绍 Maven 快照的原理、用途以及如何在项目中配置和使用快照。 Maven 快照原理 Maven 快照是版本号的一部分,…