最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

UniApp實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的5種路由方式詳解與實(shí)戰(zhàn)對(duì)比

 更新時(shí)間:2026年04月03日 08:42:11   作者:編程隨想_Code  
在 UniApp 開(kāi)發(fā)中,頁(yè)面間的跳轉(zhuǎn)是最常見(jiàn)的操作之一,UniApp 提供了 5 種路由 API,分別對(duì)應(yīng)不同的跳轉(zhuǎn)場(chǎng)景,本文將逐一講解 5 種跳轉(zhuǎn)方式的原理、適用場(chǎng)景與代碼示例,需要的朋友可以參考下

前言

在 UniApp 開(kāi)發(fā)中,頁(yè)面間的跳轉(zhuǎn)是最常見(jiàn)的操作之一。UniApp 提供了 5 種路由 API,分別對(duì)應(yīng)不同的跳轉(zhuǎn)場(chǎng)景。選錯(cuò)跳轉(zhuǎn)方式輕則體驗(yàn)變差,重則出現(xiàn)"無(wú)法返回""Tab 頁(yè)跳轉(zhuǎn)失敗"等讓人頭疼的 bug。

本文將逐一講解 5 種跳轉(zhuǎn)方式的原理、適用場(chǎng)景與代碼示例,并附上橫向?qū)Ρ缺?,方便日常查閱?/p>

一、uni.navigateTo — 保留式跳轉(zhuǎn)

最常用的跳轉(zhuǎn)方式。跳轉(zhuǎn)到新頁(yè)面時(shí),當(dāng)前頁(yè)面并不會(huì)被銷(xiāo)毀,而是壓入頁(yè)面棧(page stack),用戶可以通過(guò)左滑或返回按鈕回到上一頁(yè)。

適用場(chǎng)景:列表頁(yè) → 詳情頁(yè)、表單頁(yè) → 確認(rèn)頁(yè)、所有需要支持返回的場(chǎng)景。

// 普通跳轉(zhuǎn)
uni.navigateTo({
  url: '/pages/detail/index?id=1&type=alarm',
  success(res) {
    console.log('跳轉(zhuǎn)成功')
  },
  fail(err) {
    console.log('跳轉(zhuǎn)失敗', err)
  }
})

目標(biāo)頁(yè)面通過(guò) onLoad(options) 接收參數(shù):

onLoad(options) {
  const id = options.id     // '1'
  const type = options.type // 'alarm'
}

注意:頁(yè)面棧最多疊加 10 層,超出后 navigateTo 會(huì)靜默失敗。深層嵌套場(chǎng)景請(qǐng)考慮改用 redirectTo。

二、uni.redirectTo — 替換式跳轉(zhuǎn)

關(guān)閉當(dāng)前頁(yè)面再打開(kāi)新頁(yè)面,當(dāng)前頁(yè)面會(huì)被銷(xiāo)毀。用戶在新頁(yè)面無(wú)法通過(guò)返回鍵回到被關(guān)閉的那一頁(yè)。

適用場(chǎng)景:登錄成功 → 首頁(yè)、表單提交完成 → 結(jié)果頁(yè)、中間跳板頁(yè)。

// 登錄成功后跳轉(zhuǎn)首頁(yè),不允許返回登錄頁(yè)
uni.redirectTo({
  url: '/pages/home/index'
})

適合"一次性"操作完成后的跳轉(zhuǎn),比如支付成功頁(yè)、注冊(cè)完成頁(yè)。防止用戶按返回鍵重復(fù)觸發(fā)操作。

三、uni.reLaunch — 全清重置跳轉(zhuǎn)

關(guān)閉所有頁(yè)面后,打開(kāi)指定頁(yè)面。頁(yè)面棧被完全清空,是"最徹底"的跳轉(zhuǎn)方式。

適用場(chǎng)景:退出登錄、切換賬號(hào)、應(yīng)用重置。

// 退出登錄,清空所有頁(yè)面歷史,跳回登錄頁(yè)
uni.reLaunch({
  url: '/pages/login/index'
})

// reLaunch 也支持跳轉(zhuǎn)到 tabBar 頁(yè)面(這點(diǎn)與 redirectTo 不同)
uni.reLaunch({
  url: '/pages/home/index'
})

四、uni.switchTab — Tab 頁(yè)跳轉(zhuǎn)

專(zhuān)門(mén)用于跳轉(zhuǎn)到 pages.json 中配置了 tabBar 的頁(yè)面。跳轉(zhuǎn)時(shí)會(huì)關(guān)閉所有非 tabBar 頁(yè)面。

適用場(chǎng)景:底部 Tab 切換、業(yè)務(wù)流程結(jié)束回到主頁(yè)。

// 跳轉(zhuǎn)到首頁(yè) Tab(必須在 pages.json tabBar 中配置)
uni.switchTab({
  url: '/pages/home/index'
})

// ? 錯(cuò)誤:switchTab 不支持 url 傳參
uni.switchTab({
  url: '/pages/home/index?from=detail' // 參數(shù)會(huì)被忽略
})

注意:switchTab 的 url 不能帶參數(shù)。如果需要向 Tab 頁(yè)傳遞數(shù)據(jù),可以通過(guò) Pinia / 全局變量 / Storage 中轉(zhuǎn)。

五、uni.navigateBack — 返回上級(jí)

關(guān)閉當(dāng)前頁(yè)面,返回上一頁(yè)或多級(jí)頁(yè)面。delta 指定返回層級(jí)數(shù),默認(rèn)為 1。

適用場(chǎng)景:表單取消、彈窗關(guān)閉、跨級(jí)返回。

// 返回上一頁(yè)
uni.navigateBack({ delta: 1 })

// 返回兩層(跳過(guò)中間頁(yè))
uni.navigateBack({ delta: 2 })

// 返回時(shí)向上一頁(yè)傳遞數(shù)據(jù)(通過(guò) getCurrentPages)
const pages = getCurrentPages()
const prevPage = pages[pages.length - 2]
prevPage.setData?.({ refreshed: true })
uni.navigateBack({ delta: 1 })

六、橫向?qū)Ρ瓤偨Y(jié)

API當(dāng)前頁(yè)處理頁(yè)面棧變化能跳 tabBar能傳參數(shù)典型場(chǎng)景
navigateTo保留疊加(+1)列表→詳情
redirectTo關(guān)閉替換(±0)登錄成功→首頁(yè)
reLaunch全關(guān)清空重置退出登錄
switchTab關(guān)閉非Tab頁(yè)重置為T(mén)ab是(只能)底部Tab切換
navigateBack關(guān)閉回退(-N)間接傳返回上頁(yè)

七、實(shí)際開(kāi)發(fā)建議

  1. 優(yōu)先 navigateTo,保留返回能力,符合用戶操作習(xí)慣。
  2. 注意頁(yè)面棧上限,棧深超過(guò) 10 層時(shí) navigateTo 會(huì)失敗,可在關(guān)鍵節(jié)點(diǎn)改用 redirectTo。
  3. tabBar 頁(yè)面只能用 switchTab 跳轉(zhuǎn),用 navigateTo/redirectTo 跳轉(zhuǎn) tabBar 頁(yè)會(huì)失敗或表現(xiàn)異常。
  4. switchTab 傳參走 Pinia,禁止在 url 上拼參數(shù),改用全局狀態(tài)管理傳遞跨頁(yè)數(shù)據(jù)。
  5. reLaunch 謹(jǐn)慎使用,會(huì)清空全部歷史,用戶無(wú)法回退,只適合登出/重置等破壞性操作。

在 Vue 3 + TypeScript 項(xiàng)目中,建議封裝一個(gè)統(tǒng)一的 router 工具函數(shù),內(nèi)部根據(jù)目標(biāo)路徑是否為 tabBar 自動(dòng)選擇 switchTab 或 navigateTo,減少每次手動(dòng)判斷的心智負(fù)擔(dān)。

到此這篇關(guān)于UniApp實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)的5種路由方式詳解與實(shí)戰(zhàn)對(duì)比的文章就介紹到這了,更多相關(guān)UniApp頁(yè)面跳轉(zhuǎn)方式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript中DOM詳解

    JavaScript中DOM詳解

    這篇文章主要介紹了jQuery 中DOM 操作詳解,以及在火狐和IE之間的13點(diǎn)JavaScript差異,需要的朋友可以參考下
    2015-04-04
  • JS實(shí)現(xiàn)滑動(dòng)條案例

    JS實(shí)現(xiàn)滑動(dòng)條案例

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)滑動(dòng)條案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS實(shí)現(xiàn)圖片切換特效

    JS實(shí)現(xiàn)圖片切換特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)圖片切換特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 一文詳解JavaScrip可迭代對(duì)象(Iterable)

    一文詳解JavaScrip可迭代對(duì)象(Iterable)

    本文解釋了ES6引入迭代器和可迭代對(duì)象的原因及使用方法,通過(guò)引入這兩個(gè)概念,JavaScript 統(tǒng)一了數(shù)據(jù)訪問(wèn)接口,解決了遍歷方式不統(tǒng)一和靈活性差的問(wèn)題,文章詳細(xì)介紹了核心概念、底層原理、實(shí)戰(zhàn)案例、常見(jiàn)誤區(qū)及最佳實(shí)踐,幫助讀者徹底理解可迭代對(duì)象,需要的朋友可以參考下
    2026-05-05
  • 淺述Javascript的外部對(duì)象

    淺述Javascript的外部對(duì)象

    本文主要對(duì)Javascript的外部對(duì)象進(jìn)行介紹,列舉了具體實(shí)例。便于理解。有需要的朋友可以看下
    2016-12-12
  • String字符串截取的四種方式總結(jié)

    String字符串截取的四種方式總結(jié)

    下面小編就為大家?guī)?lái)一篇String字符串截取的四種方式總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-11-11
  • JS FormData對(duì)象使用方法實(shí)例詳解

    JS FormData對(duì)象使用方法實(shí)例詳解

    這篇文章主要介紹了JS FormData對(duì)象使用方法,結(jié)合實(shí)例形式詳細(xì)分析了FormData對(duì)象的基本功能、原理及使用方法,需要的朋友可以參考下
    2020-02-02
  • ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用

    ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • js使用數(shù)組判斷提交數(shù)據(jù)是否存在相同數(shù)據(jù)

    js使用數(shù)組判斷提交數(shù)據(jù)是否存在相同數(shù)據(jù)

    判斷提交數(shù)據(jù)是否存在相同數(shù)據(jù),在本文將為大家介紹使用數(shù)組做到這一點(diǎn),感興趣的朋友可以參考下
    2013-11-11
  • 完美解決spring websocket自動(dòng)斷開(kāi)連接再創(chuàng)建引發(fā)的問(wèn)題

    完美解決spring websocket自動(dòng)斷開(kāi)連接再創(chuàng)建引發(fā)的問(wèn)題

    下面小編就為大家?guī)?lái)一篇完美解決spring websocket自動(dòng)斷開(kāi)連接再創(chuàng)建引發(fā)的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03

最新評(píng)論

富顺县| 喀喇沁旗| 庆城县| 华宁县| 靖远县| 平度市| 治县。| 江陵县| 桦南县| 兴安县| 越西县| 临海市| 沁水县| 家居| 滨州市| 虹口区| 新龙县| 辉南县| 福清市| 陆河县| 仲巴县| 平定县| 鄱阳县| 万山特区| 西乌珠穆沁旗| 汤原县| 门源| 乌兰浩特市| 临洮县| 大竹县| 镇远县| 宾川县| 福贡县| 曲阜市| 化州市| 永定县| 法库县| 叙永县| 琼中| 迁西县| 巢湖市|