亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

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

總結對比

方法適用場景適用數據類型是否持久化數據是否暴露
URL 傳參傳遞簡單數據(ID、狀態(tài)值)字符串、數字
eventChannelnavigateTo 方式傳遞復雜數據對象、數組
Vuex多個頁面共享數據對象、數組
localStorage短期數據存儲、頁面刷新保持對象、數組

推薦方案

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

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

1. URL 參數

適用于簡單數據傳遞,如字符串、數字等

實現步驟

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

index.vue

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

form.vue

優(yōu)缺點

優(yōu)點:適合小型數據傳輸,如 ID、狀態(tài)值等
缺點:無法傳輸復雜對象(如 JSON),會導致數據丟失

2. eventChannel 通信

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

實現步驟

  • index 頁面通過 success 回調,使用 eventChannel.emit 傳輸數據
  • form 頁面通過 getOpenerEventChannel().on 監(jiān)聽并接收數據

index.vue

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

form.vue

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

優(yōu)缺點

優(yōu)點:

適合傳輸復雜數據,如 JSON 對象

數據不會暴露在 URL,安全性較高

缺點:僅適用于 uni.navigateTo 方式,不適用于 redirectTo 或 switchTab

3. Vuex共享

適用于多個頁面共享數據,或者希望數據在頁面間持久化的情況

實現步驟

  1. 在 Vuex 的 store 中定義 state 并提供 mutation
  2. index 頁面調用 commit 方法存入數據
  3. form 頁面通過 mapState 獲取數據

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: "碼農研究僧"
    });
    uni.navigateTo({ url: "/pages/form/form" });
  }
}

form.vue

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

優(yōu)缺點

優(yōu)點:

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

數據不會丟失,即使用戶返回上一頁

缺點:適用于大規(guī)模項目,小項目可能不必要

4. localStorage 或 sessionStorage

適用于頁面刷新后仍需保持數據的情況,如緩存用戶輸入的信息

實現步驟

  1. index 頁面存入 localStorage
  2. form 頁面從 localStorage 讀取數據

index.vue

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

form.vue

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

優(yōu)缺點

優(yōu)點:

適用于短期存儲,頁面刷新后數據仍可用

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

缺點:

需要手動清理,否則可能導致存儲過多無用數據

以上就是Vue3中從一個頁面(index)傳輸數值到另一個頁面(form)的方法詳解的詳細內容,更多關于Vue3頁面?zhèn)鬏敂抵档馁Y料請關注腳本之家其它相關文章!

相關文章

  • Vue使用PDF.js實現瀏覽pdf文件功能

    Vue使用PDF.js實現瀏覽pdf文件功能

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

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

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

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

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

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

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

    vue2老項目vite升級改造過程記錄

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

    去除Element-Plus下拉菜單邊框的實現步驟

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

    關于實現Vue3版抖音滑動插件踩坑指南

    這篇文章主要給大家介紹了關于實現Vue3版抖音滑動插件踩坑指南,文中通過實例代碼介紹的非常詳細,對大家學習或者使用vue3具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02
  • vue?tree封裝一個可選的樹組件方式

    vue?tree封裝一個可選的樹組件方式

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

    Vue3使用echarts tree高度自適應支持滾動查看功能

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

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

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

最新評論