欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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使用PDF.js實(shí)現(xiàn)瀏覽pdf文件功能

    Vue使用PDF.js實(shí)現(xiàn)瀏覽pdf文件功能

    這篇文章主要為大家詳細(xì)介紹了Vue如何使用PDF.js實(shí)現(xiàn)瀏覽pdf文件功能,文中的實(shí)現(xiàn)步驟講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-04-04
  • vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析

    vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析

    這篇文章主要介紹了vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 淺析vue插槽和作用域插槽的理解

    淺析vue插槽和作用域插槽的理解

    插槽,也就是slot,是組件的一塊HTML模板,這塊模板顯示不現(xiàn)實(shí)、以及怎樣顯示由父組件來(lái)決定。這篇文章主要介紹了淺析vue插槽和作用域插槽的理解,需要的朋友可以參考下
    2019-04-04
  • Vue中this.$nextTick()的理解與使用方法

    Vue中this.$nextTick()的理解與使用方法

    this.$nextTick是在下次dom更新循環(huán)之后執(zhí)行延遲回調(diào),在修改數(shù)據(jù)之后立即使用這個(gè)方法,獲取更新后的dom,下面這篇文章主要給大家介紹了關(guān)于Vue中this.$nextTick()的理解與使用的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • vue2老項(xiàng)目vite升級(jí)改造過(guò)程記錄

    vue2老項(xiàng)目vite升級(jí)改造過(guò)程記錄

    目前vite主要默認(rèn)是支持給vue3使用的,并且如果使用官方的cli創(chuàng)建的項(xiàng)目一樣會(huì)默認(rèn)使用vue3去構(gòu)建項(xiàng)目,此時(shí)對(duì)于一些vue2的老項(xiàng)目就顯得不友好了,下面這篇文章主要給大家介紹了關(guān)于vue2老項(xiàng)目vite升級(jí)改造的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 去除Element-Plus下拉菜單邊框的實(shí)現(xiàn)步驟

    去除Element-Plus下拉菜單邊框的實(shí)現(xiàn)步驟

    Element-Plus 是 Element UI 的 Vue 3 版本,它提供了一套完整的組件庫(kù),在使用 Element-Plus 進(jìn)行開發(fā)時(shí),我們可能會(huì)遇到需要自定義組件樣式的情況,本文將介紹如何使用 CSS 來(lái)去除 Element-Plus 下拉框的邊框,需要的朋友可以參考下
    2024-03-03
  • 關(guān)于實(shí)現(xiàn)Vue3版抖音滑動(dòng)插件踩坑指南

    關(guān)于實(shí)現(xiàn)Vue3版抖音滑動(dòng)插件踩坑指南

    這篇文章主要給大家介紹了關(guān)于實(shí)現(xiàn)Vue3版抖音滑動(dòng)插件踩坑指南,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue3具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-02-02
  • vue?tree封裝一個(gè)可選的樹組件方式

    vue?tree封裝一個(gè)可選的樹組件方式

    這篇文章主要介紹了vue?tree封裝一個(gè)可選的樹組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue3使用echarts tree高度自適應(yīng)支持滾動(dòng)查看功能

    Vue3使用echarts tree高度自適應(yīng)支持滾動(dòng)查看功能

    這篇文章主要介紹了Vue3使用echarts tree高度自適應(yīng)支持滾動(dòng)查看功能,文章同通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • 腳手架vue-cli工程webpack的基本用法詳解

    腳手架vue-cli工程webpack的基本用法詳解

    這篇文章主要介紹了vue-cli工程webpack的基本用法,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-09-09

最新評(píng)論