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

Vue3中從一個(gè)頁(yè)面(index)傳輸數(shù)值到另一個(gè)頁(yè)面(form)的方法詳解

 更新時(shí)間:2025年02月26日 09:04:56   作者:碼農(nóng)研究僧  
在 Vue 3 開發(fā)中,經(jīng)常需要在不同組件或頁(yè)面之間傳遞數(shù)據(jù),例如從 index 頁(yè)面獲取某個(gè)數(shù)值(如 cntr、tradeId)后,將其傳輸?shù)?nbsp;form 頁(yè)面進(jìn)行填寫或編輯,本文將介紹幾種常見的數(shù)據(jù)傳輸方法,并為每種方法提供一個(gè)小的 Demo 代碼示例,需要的朋友可以參考下

前言

在 Vue 3 開發(fā)中,經(jīng)常需要在不同組件或頁(yè)面之間傳遞數(shù)據(jù),例如從 index 頁(yè)面獲取某個(gè)數(shù)值(如 cntr、tradeId)后,將其傳輸?shù)?form 頁(yè)面進(jìn)行填寫或編輯

本文將介紹幾種常見的數(shù)據(jù)傳輸方法,并為每種方法提供一個(gè)小的 Demo 代碼示例

總結(jié)對(duì)比

方法適用場(chǎng)景適用數(shù)據(jù)類型是否持久化數(shù)據(jù)是否暴露
URL 傳參傳遞簡(jiǎn)單數(shù)據(jù)(ID、狀態(tài)值)字符串、數(shù)字
eventChannelnavigateTo 方式傳遞復(fù)雜數(shù)據(jù)對(duì)象、數(shù)組
Vuex多個(gè)頁(yè)面共享數(shù)據(jù)對(duì)象、數(shù)組
localStorage短期數(shù)據(jù)存儲(chǔ)、頁(yè)面刷新保持對(duì)象、數(shù)組

推薦方案

  1. 如果只是傳遞少量數(shù)據(jù)(如 ID),URL 傳參最簡(jiǎn)單
  2. 如果需要傳遞復(fù)雜對(duì)象(如 JSON),推薦 eventChannel
  3. 如果多個(gè)頁(yè)面共享數(shù)據(jù),Vuex 是更好的選擇
  4. 如果需要在頁(yè)面刷新后仍保留數(shù)據(jù),localStorage 是不錯(cuò)的方案

一開始博主使用的第一種,后續(xù)由于參數(shù)過(guò)多,使用第二種:

1. URL 參數(shù)

適用于簡(jiǎn)單數(shù)據(jù)傳遞,如字符串、數(shù)字等

實(shí)現(xiàn)步驟

  1. 在 index 頁(yè)面使用 uni.navigateTo 或 this.$router.push 傳遞參數(shù)
  2. 在 form 頁(yè)面通過(guò) onLoad(options) 或 this.$route.query 解析參數(shù)

index.vue

methods: {
  goToForm() {
    uni.navigateTo({
      url: `/pages/form/form?cntr=manong123&tradeId=1`
    });
  }
}

form.vue

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):適合小型數(shù)據(jù)傳輸,如 ID、狀態(tài)值等
缺點(diǎn):無(wú)法傳輸復(fù)雜對(duì)象(如 JSON),會(huì)導(dǎo)致數(shù)據(jù)丟失

2. eventChannel 通信

適用于需要傳輸復(fù)雜數(shù)據(jù)(如對(duì)象、數(shù)組)且不希望數(shù)據(jù)暴露在 URL 參數(shù)中的情況

實(shí)現(xiàn)步驟

  • index 頁(yè)面通過(guò) success 回調(diào),使用 eventChannel.emit 傳輸數(shù)據(jù)
  • form 頁(yè)面通過(guò) getOpenerEventChannel().on 監(jiān)聽并接收數(shù)據(jù)

index.vue

methods: {
  goToForm() {
    uni.navigateTo({
      url: `/pages/form/form`,
      success: (page) => {
        if (page.eventChannel) {
          page.eventChannel.emit("setItemData", {
            cntr: "manong123",
            tradeId: "1",
            driverName: "碼農(nóng)研究僧"
          });
        }
      }
    });
  }
}

form.vue

onLoad(options) {
  const eventChannel = this.getOpenerEventChannel();
  eventChannel.on("setItemData", (itemData) => {
    this.itemData = itemData;
  });
}

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

適合傳輸復(fù)雜數(shù)據(jù),如 JSON 對(duì)象

數(shù)據(jù)不會(huì)暴露在 URL,安全性較高

缺點(diǎn):僅適用于 uni.navigateTo 方式,不適用于 redirectTo 或 switchTab

3. Vuex共享

適用于多個(gè)頁(yè)面共享數(shù)據(jù),或者希望數(shù)據(jù)在頁(yè)面間持久化的情況

實(shí)現(xiàn)步驟

  1. 在 Vuex 的 store 中定義 state 并提供 mutation
  2. index 頁(yè)面調(diào)用 commit 方法存入數(shù)據(jù)
  3. form 頁(yè)面通過(guò) mapState 獲取數(shù)據(jù)

store/index.js

export default {
  state: {
    itemData: {}
  },
  mutations: {
    setItemData(state, data) {
      state.itemData = data;
    }
  }
};

index.vue

methods: {
  goToForm() {
    this.$store.commit("setItemData", {
      cntr: "manong123",
      tradeId: "1",
      driverName: "碼農(nóng)研究僧"
    });
    uni.navigateTo({ url: "/pages/form/form" });
  }
}

form.vue

computed: {
  itemData() {
    return this.$store.state.itemData;
  }
}

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

適用于全局狀態(tài)管理,多頁(yè)面數(shù)據(jù)共享

數(shù)據(jù)不會(huì)丟失,即使用戶返回上一頁(yè)

缺點(diǎn):適用于大規(guī)模項(xiàng)目,小項(xiàng)目可能不必要

4. localStorage 或 sessionStorage

適用于頁(yè)面刷新后仍需保持?jǐn)?shù)據(jù)的情況,如緩存用戶輸入的信息

實(shí)現(xiàn)步驟

  1. index 頁(yè)面存入 localStorage
  2. form 頁(yè)面從 localStorage 讀取數(shù)據(jù)

index.vue

methods: {
  goToForm() {
    uni.setStorageSync("itemData", {
      cntr: "manong123",
      tradeId: "1",
      driverName: "碼農(nóng)研究僧"
    });
    uni.navigateTo({ url: "/pages/form/form" });
  }
}

form.vue

onLoad(options) {
  this.itemData = uni.getStorageSync("itemData") || {};
}

優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

適用于短期存儲(chǔ),頁(yè)面刷新后數(shù)據(jù)仍可用

可用于 redirectTo、switchTab,不受 eventChannel 限制

缺點(diǎn):

需要手動(dòng)清理,否則可能導(dǎo)致存儲(chǔ)過(guò)多無(wú)用數(shù)據(jù)

以上就是Vue3中從一個(gè)頁(yè)面(index)傳輸數(shù)值到另一個(gè)頁(yè)面(form)的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Vue3頁(yè)面?zhèn)鬏敂?shù)值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue?Router?中?Hash和?History?模式的核心區(qū)別、使用場(chǎng)景

    Vue?Router?中?Hash和?History?模式的核心區(qū)別、使用場(chǎng)景

    文章詳細(xì)介紹了VueRouter中Hash模式和History模式的核心區(qū)別、底層原理、使用場(chǎng)景及部署注意事項(xiàng),文章還提供了實(shí)戰(zhàn)部署的解決方案和選型建議,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • vue3實(shí)現(xiàn)無(wú)縫滾動(dòng)列表效果(大屏數(shù)據(jù)輪播場(chǎng)景)

    vue3實(shí)現(xiàn)無(wú)縫滾動(dòng)列表效果(大屏數(shù)據(jù)輪播場(chǎng)景)

    vue3-scroll-seamless 是一個(gè)用于 Vue 3 的插件,用于實(shí)現(xiàn)無(wú)縫滾動(dòng)的組件,它可以讓內(nèi)容在水平或垂直方向上無(wú)縫滾動(dòng),適用于展示輪播圖、新聞滾動(dòng)、圖片展示等場(chǎng)景,本文就給大家介紹了vue3實(shí)現(xiàn)無(wú)縫滾動(dòng)列表效果,需要的朋友可以參考下
    2024-07-07
  • Vue?PC前端掃碼登錄功能實(shí)現(xiàn)

    Vue?PC前端掃碼登錄功能實(shí)現(xiàn)

    最近在做APP客戶端掃描PC端二維碼登錄,于是記錄一下實(shí)現(xiàn)過(guò)程,下面這篇文章主要給大家介紹了關(guān)于Vue?PC前端掃碼登錄功能實(shí)現(xiàn)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout詳解

    VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout詳解

    想實(shí)現(xiàn)桌面自由拖拽布局的效果,找到了vue-grid-layout柵格布局插件,可以完美解決,下面這篇文章主要給大家介紹了關(guān)于VUE3中實(shí)現(xiàn)拖拽與縮放自定義看板vue-grid-layout的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 使用Vue-cli3.0創(chuàng)建的項(xiàng)目 如何發(fā)布npm包

    使用Vue-cli3.0創(chuàng)建的項(xiàng)目 如何發(fā)布npm包

    這篇文章主要介紹了使用Vue-cli3.0創(chuàng)建的項(xiàng)目,如何發(fā)布npm包,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Vue.Draggable拖拽功能的配置使用方法

    Vue.Draggable拖拽功能的配置使用方法

    這篇文章主要為大家詳細(xì)介紹了Vue.Draggable拖拽功能配置使用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Vue中的methods、computed計(jì)算屬性和watch監(jiān)聽屬性的使用和區(qū)別解析

    Vue中的methods、computed計(jì)算屬性和watch監(jiān)聽屬性的使用和區(qū)別解析

    這篇文章主要介紹了Vue中的methods、computed計(jì)算屬性和watch監(jiān)聽屬性的使用和區(qū)別,本文通過(guò)示例代碼給大家介紹的非常詳細(xì)對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • vue混入mixin流程與優(yōu)缺點(diǎn)詳解

    vue混入mixin流程與優(yōu)缺點(diǎn)詳解

    混入(mixin)提供了一種非常靈活的方式,來(lái)分發(fā)vue組件中的可復(fù)用功能。一個(gè)混入對(duì)象可以包含任意組件選項(xiàng)。當(dāng)組件使用混入對(duì)象時(shí),所有混入對(duì)象的選項(xiàng)將被“混合”進(jìn)入該組件本身的選項(xiàng)
    2022-09-09
  • 詳解Vue router路由

    詳解Vue router路由

    這篇文章主要為大家介紹了Vue 的router路由,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    vue3數(shù)據(jù)監(jiān)聽watch/watchEffect的示例代碼

    我們都知道監(jiān)聽器的作用是在每次響應(yīng)式狀態(tài)發(fā)生變化時(shí)觸發(fā),在組合式?API?中,我們可以使用?watch()函數(shù)和watchEffect()函數(shù),下面我們來(lái)看下vue3如何進(jìn)行數(shù)據(jù)監(jiān)聽watch/watchEffect,感興趣的朋友一起看看吧
    2023-02-02

最新評(píng)論

建湖县| 峨眉山市| 呼伦贝尔市| 札达县| 武山县| 揭阳市| 台北县| 乐清市| 东丰县| 灵寿县| 合川市| 孝感市| 永兴县| 铜鼓县| 秀山| 绥中县| 连南| 孟村| 疏勒县| 昌黎县| 西充县| 长海县| 平乐县| 驻马店市| 丹巴县| 鸡西市| 炎陵县| 镇巴县| 陵川县| 休宁县| 建水县| 塘沽区| 邵武市| 松滋市| 久治县| 宁津县| 大港区| 江城| 巴南区| 台江县| 阆中市|