首頁 > web前端 > uni-app > uniapp跳轉帶回數據

uniapp跳轉帶回數據

WBOY
發布: 2023-05-22 11:14:36
原創
1162 人瀏覽過

在開發行動應用程式時,經常需要跨頁面傳遞資料的場景。這時,我們可以利用uniapp框架提供的資料傳遞方法來實現快速、方便的跨頁面傳遞資料。

如何利用uniapp的資料傳遞方法來跳轉並且帶回資料呢?下面,我們將詳細介紹。

一、跳轉和回傳的基本流程

1.在來源頁面(例如:index.vue)中,我們需要定義一個事件,用來處理傳回的資料並將其保存在目前元件的data中。

<template>
  <view>
    <button @click="toDestination">前往目标页面</button>
  </view>
</template>
<script>
  export default {
    methods: {
      toDestination() {
        uni.navigateTo({
          url: '/pages/destination/destination',
          events: {
            acceptDataFromOpenedPage: function(data) {
              console.log('源页面接收到的数据:' + JSON.stringify(data));
              // 在这里可以将接收到的数据保存到当前组件的data中
              // 比如:this.setData({receivedData: data})
            }
          }
        })
      }
    }
  }
</script>
登入後複製
登入後複製

2.在目標頁面(例如:destination.vue)中,我們需要定義一個事件,將我們想要傳遞的資料透過該事件返回到來源頁面。

<template>
  <view>
    <button @click="backToSource">回到源页面</button>
  </view>
</template>
<script>
  export default {
    methods: {
      backToSource() {
        var data = {
          name: '小明',
          age: 18,
          gender: '男'
        };
        uni.$emit('acceptDataFromOpenedPage', data);
        uni.navigateBack();
      }
    }
  }
</script>
登入後複製

在這個範例中,我們透過uni.$emit()方法將我們想要傳遞的資料傳回來源頁面,並在回呼函數中觸發acceptDataFromOpenedPage事件。同時,我們也呼叫uni.navigateBack()方法回到來源頁面。

3.最後,在來源頁面中處理acceptDataFromOpenedPage事件的具體操作。在這個事件的回呼函數中,我們可以將接收的資料保存在目前元件的data中,從而實現跨頁面傳遞資料的目的。

二、傳遞和回傳數組類型的資料

在實際開發中,我們經常遇到傳遞和回傳數組類型的資料的場景。在uniapp中,我們可以透過JSON字串來實現這一目的。

例如,在來源頁面中:

<template>
  <view>
    <button @click="toDestination">前往目标页面</button>
  </view>
</template>
<script>
  export default {
    methods: {
      toDestination() {
        uni.navigateTo({
          url: '/pages/destination/destination',
          events: {
            acceptDataFromOpenedPage: function(data) {
              console.log('源页面接收到的数据:' + JSON.stringify(data));
              // 在这里可以将接收到的数据保存到当前组件的data中
              // 比如:this.setData({receivedData: data})
            }
          }
        })
      }
    }
  }
</script>
登入後複製
登入後複製

在目標頁面中:

<template>
  <view>
    <button @click="backToSource">回到源页面</button>
  </view>
</template>
<script>
  export default {
    methods: {
      backToSource() {
        var dataArr = [
          {name: '小明', age: 18, gender: '男'},
          {name: '小红', age: 20, gender: '女'},
          {name: '小李', age: 22, gender: '男'}
        ];
        uni.setStorageSync('dataArr', JSON.stringify(dataArr));
        uni.navigateBack();
      }
    }
  }
</script>
登入後複製

在這個例子中,我們透過uni.setStorageSync()方法將數組類型的數據儲存在本機儲存中,並以JSON字串的形式進行儲存。同樣地,在來源頁面中,我們需要透過JSON.parse()方法將JSON字串類型的數據轉換成數組類型的數據,從而實現數據的準確傳遞和回傳。

三、總結

透過uniapp框架提供的方法,我們可以快速、方便地實現跨頁面傳遞資料的目的。使用時,我們需要定義好事件、回呼函數等主要元素,遵守uniapp的規範,從而實現高效且精準的資料傳遞。

以上是uniapp跳轉帶回數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板