[Vue]编程式导航

在 Vue 中,编程式导航是通过 JavaScript 代码(而非 <router-link> 标签)动态控制路由跳转的核心方式。这个方法依赖于 Vue Router 提供的 API,能更灵活地处理复杂场景(如异步操作、条件跳转等)。


一、核心方法

Vue Router 提供了以下方法实现编程式导航:

方法作用
router.push()跳转新页面,会向浏览器历史记录添加新条目(可后退)
router.replace()替换当前页面,不会留下历史记录(不可后退)
router.go(n)前进/后退 n 步(正数前进,负数后退)
router.back()后退一步(等价于 router.go(-1)
router.forward()前进一步(等价于 router.go(1)

二、router.push() 详解

这是最常用的方法,支持多种参数格式:

1. 路径字符串
// 跳转到指定路径
this.$router.push('/user');
2. 对象描述(推荐)
// 通过路径跳转
this.$router.push({ path: '/user' });// 通过命名路由跳转(需在路由配置中定义 name)
this.$router.push({ name: 'UserProfile', params: { userId: 123 } // 动态参数(需路由配置占位符)
});
3. 携带参数
  • query 参数(URL 可见,适合非敏感数据):

    this.$router.push({path: '/user',query: { id: 1, name: '王博涵' }
    });
    // URL: /user?id=1&name=John
    
  • params 参数(需路由配置占位符,URL 更简洁):

    // 路由配置
    { path: '/user/:userId', name: 'User', component: User }// 跳转代码
    this.$router.push({name: 'User', // 必须使用命名路由params: { userId: 123 }
    });
    // URL: /user/123
    

三、router.replace() 使用

push 类似,但不会留下历史记录:

// 替换当前页面(不可后退)
this.$router.replace({ path: '/login' });

四、router.go() 控制历史记录

// 后退一步
this.$router.go(-1);// 前进两步
this.$router.go(2);

五、动态路由参数处理

在目标组件中,通过 $route.paramsprops 接收参数:

1. 通过 $route 获取
// 目标组件中
export default {mounted() {const userId = this.$route.params.userId;console.log(userId); // 123}
}
2. 通过 props 解耦(推荐)
// 路由配置中启用 props
{ path: '/user/:userId', component: User, props: true 
}// 目标组件声明 props
export default {props: ['userId'],mounted() {console.log(this.userId); // 123}
}

六、高级用法

1. 异步跳转处理
this.$router.push('/target').catch(error => {// 处理导航错误(如重复跳转同一路由)if (error.name === 'NavigationDuplicated') {console.log('重复跳转');}
});
2. 导航守卫结合

在全局或路由独享守卫中控制跳转:

// 全局前置守卫
router.beforeEach((to, from, next) => {if (to.path === '/admin' && !isAdmin) {next('/login'); // 中断跳转并重定向} else {next();}
});

七、注意事项

  1. params 必须使用 name:若使用 params,跳转时必须通过 name 而非 path
  2. 路由配置匹配:确保路由路径中包含参数占位符(如 /user/:id)。
  3. 可选参数:在路由路径中使用 ? 修饰符定义可选参数:
    { path: '/user/:id?' } // id 为可选
    

八、完整示例

1. 路由配置
// router.js
import Vue from 'vue';
import VueRouter from 'vue-router';Vue.use(VueRouter);const routes = [{path: '/user/:userId',name: 'User',component: () => import('./User.vue'),props: true}
];const router = new VueRouter({ routes });
export default router;
2. 跳转代码
// 在组件方法中
methods: {navigateToUser() {this.$router.push({name: 'User',params: { userId: 123 }});}
}
3. 目标组件
<!-- User.vue -->
<template><div>User ID: {{ userId }}</div>
</template><script>
export default {props: ['userId']
};
</script>

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

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

相关文章

邹晓辉教授十余年前关于围棋程序与融智学的思考,体现了对复杂系统本质的深刻洞察,其观点在人工智能发展历程中具有前瞻性意义。我们可以从以下三个维度进行深入解析:

邹晓辉教授十余年前关于围棋程序与融智学的思考&#xff0c;体现了对复杂系统本质的深刻洞察&#xff0c;其观点在人工智能发展历程中具有前瞻性意义。我们可以从以下三个维度进行深入解析&#xff1a; 一、围棋程序的二元解构&#xff1a;数据结构与算法的辩证关系 1.1.形式…

The Traitor King (10 player 25 player)

The Traitor King 十字军试炼尾王成就。叛变的国王&#xff1a;在30秒内杀死40只虫群甲虫。考验团队配合的成就。比不朽者&#xff0c;黑曜石31等等强度大&#xff0c;甚至感觉比宝库地风火难。

数据结构一 单链表

1.单链表 1.数据结构简介 程序数据结构算法 数据 数据&#xff08;data&#xff09;是客观事物的一个符号表示 数据元素&#xff08;data element&#xff09;是数据的基本单位&#xff0c;一 个数据元素可以由若干个数据项&#xff08;data item&#xff09;组成。数据项…

GPU集群监控系统开发实录:基于Prometheus+Grafana的算力利用率可视化方案

一、科研场景下的GPU监控痛点 在深度学习模型训练、分子动力学模拟等科研场景中&#xff0c;GPU集群的算力利用率直接影响着科研效率。笔者在参与某高校计算中心的运维工作时&#xff0c;发现以下典型问题&#xff1a; 资源黑洞现象&#xff1a;多课题组共享GPU时出现"抢…

【计算机视觉】三维重建: MVSNet:基于深度学习的多视图立体视觉重建框架

MVSNet&#xff1a;基于深度学习的多视图立体视觉重建框架 技术架构与核心算法1. 算法流程2. 关键创新 环境配置与实战指南硬件要求安装步骤数据准备&#xff08;DTU数据集&#xff09; 实战流程1. 模型训练2. 深度图推断3. 点云生成 常见问题与解决方案1. CUDA内存不足2. 特征…

智能家居的OneNet云平台

一、声明 该项目只需要创建一个产品&#xff0c;然后这个产品里面包含几个设备&#xff0c;而不是直接创建几个产品 注意&#xff1a;传输数据使用到了不同的power&#xff0c;还有一定要手机先联网才能使用云平台 二、OneNet云平台创建 &#xff08;1&#xff09;Temperatur…

aidermacs开源程序使用 Aider 在 Emacs 中进行 AI 配对编程

一、软件介绍 文末提供程序和源码下载 Aidermacs 通过集成 Aider&#xff08;最强大的开源 AI 配对编程工具之一&#xff09;为 Emacs 带来了 AI 驱动的开发。如果您缺少 Cursor&#xff0c;但更喜欢生活在 Emacs 中&#xff0c;Aidermacs 提供了类似的 AI 功能&#xff0c;同…

加密算法(一)-对称加密(DES、AES、3DES、Blowfish、Twofish)一篇了解所有主流对称加密,轻松上手使用。

一、对称加密算法 对称加密算法采用相同的密钥来进行加密和解密操作。其优点是加密和解密速度快&#xff0c;不过密钥的管理和分发存在一定的安全风险。 1.1、DES(已不推荐使用) 这是早期的对称加密算法&#xff0c;密钥长度为 56 位。但由于密钥长度较短&#xff0c;如今已不…

深度优先VS广度优先:算法选择的核心逻辑与实战指南

摘要 深度优先搜索&#xff08;DFS&#xff09;与广度优先搜索&#xff08;BFS&#xff09;是图结构遍历与路径分析的基础算法&#xff0c;也是最常见的搜索框架&#xff0c;在路径规划、社交网络分析、游戏AI等领域均有广泛应用。本文从算法思想、数据结构选择、时空复杂度和…

2025深圳杯、东三省数学建模B题数模AI全网专业性第一

为什么选择使用我的数模AI&#xff1f; 1.轻松辅导学生 2.小白也能翻身碾压大佬 3.突破知识壁垒&#xff0c;缩短与大佬的差距&#xff0c;打破不公平的教学资源&#xff0c;扭转差距 4.辅助商业服务&#xff0c;成本低 5.大模型本身有一定随机性&#xff0c;所以也不用担心…

使用MGeo模型高精度实现文本中地址识别

一、功能与安装 1、模型地址 模型是阿里开发的门址高精度识别模型。 https://modelscope.cn/models/iic/mgeo_geographic_elements_tagging_chinese_base/summary 注意&#xff1a;不能自己安装包&#xff0c;没法解决依赖问题&#xff0c;直接按照官方要求安装下面的包&am…

【Vue】Vue与UI框架(Element Plus、Ant Design Vue、Vant)

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Vue 文章目录 1. Vue UI 框架概述1.1 主流Vue UI框架简介1.2 选择UI框架的考虑因素 2. Element Plus详解2.1 Element Plus基础使用2.1.1 安装与引入2.1.2 基础组件示例 2.2 Element Plus主题定制2.3 Element Plus的优缺点分析 3…

MLPerf基准测试工具链定制开发指南:构建领域特异性评估指标的实践方法

引言&#xff1a;基准测试的领域适配困局 MLPerf作为机器学习性能评估的"黄金标准"&#xff0c;其通用基准集在实际科研中常面临‌领域适配鸿沟‌&#xff1a;医疗影像任务的Dice系数缺失、NLP场景的困惑度指标偏差等问题普遍存在。本文通过逆向工程MLPerf v3.1工具…

好看的个人主页HTML源码分享

源码介绍 好看的个人主页HTML源码分享&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果 效果预览 源码获取 好看的个人主页HTML源码分享

mac word接入deepseek

网上大多使用Windows版word来接入deepseek&#xff0c;vba文件引入mac后&#xff0c;因底层工具不同&#xff0c;难以直接运行&#xff0c;例如CreateObject("MSXML2.XMLHTTP")无法创建&#xff0c;为此写了一版新的vba&#xff0c;基于mac底层工具来实现。 vba文件点…

React Native 入门 jsx tsx 基础语法

React Native 入门 jsx 基础语法 JSX 介绍 JSX (JavaScript XML) 是一种 JavaScript 的语法扩展&#xff0c;允许你在 JavaScript 文件中编写类似 HTML 的代码。它是 React 和 React Native 应用程序中用来描述 UI 的主要方式。 JSX 的特点 JSX 看起来像 HTML&#xff0c;但…

HDLBIT-程序(Procedures)

始终块(组合)【Always blocks(combinational)】 答案: Always blocks (clocked) 答案&#xff1a; module top_module(input clk,input a,input b,output wire out_assign,output reg out_always_comb,output reg out_always_ff );assign out_assigna^b;always(*)beginout_a…

值此五一劳动节来临之际,

值此五一劳动节来临之际&#xff0c;谨向全体员工致以节日的问候与诚挚的感谢&#xff01;正是你们的敬业与奋斗&#xff0c;成就了今天的成绩。愿大家节日愉快&#xff0c;阖家幸福&#xff0c;身体健康&#xff01; #北京先智先行科技有限公司 #先知AI #节日快乐

【经管数据】A股上市公司资产定价效率数据(2000-2023年)

数据简介&#xff1a;资产定价效率是衡量市场是否能够有效、准确地反映资产内在价值的重要指标。在理想的市场条件下&#xff0c;资产的市场价格应该与其内在价值保持一致&#xff0c;即市场定价效率达到最高。然而&#xff0c;在实际市场中&#xff0c;由于信息不对称、交易摩…

云蝠智能大模型智能呼叫:赋能零售行业服务,助力客户增长

在数字化浪潮席卷全球的今天&#xff0c;零售行业正面临前所未有的变革压力。消费者需求日益个性化、市场竞争愈发激烈&#xff0c;传统的人工客服模式已难以满足企业对高效触达、精准营销和极致体验的需求。而云蝠智能大模型智能呼叫系统&#xff0c;凭借其突破性的AI技术和深…