[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.pswp.cn/web/78257.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78257.shtml
英文地址,請注明出處:http://en.pswp.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技術和深…