溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

小程序頁(yè)面間傳遞數(shù)據(jù)的方式有哪些

發(fā)布時(shí)間:2021-03-10 11:37:32 來(lái)源:億速云 閱讀:150 作者:小新 欄目:移動(dòng)開發(fā)

小編給大家分享一下小程序頁(yè)面間傳遞數(shù)據(jù)的方式有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

第一種:頁(yè)面跳轉(zhuǎn)時(shí)通過(guò)url傳遞

使用wx.navigateTowx.redirectTo 的時(shí)候,可以將部分?jǐn)?shù)據(jù)放在 url 里面,并在新頁(yè)面 onLoad 的時(shí)候獲取且初始化。

//pageA.js

// Navigate
wx.navigateTo({
  url: '../pageB/pageB?name=lin&gender=male',
})

// Redirect
wx.redirectTo({
  url: '../pageB/pageB?name=lin&gender=male',
})

// pageB.js
...
Page({
  onLoad: function(option){
    console.log(option.name + 'is' + option.gender);
    this.setData({
      option: option
    });
  }
})

需要注意的問(wèn)題:

  1. 使用wx.navigateTowx.redirectTo時(shí),不允許跳轉(zhuǎn)到 tab 所包含的頁(yè)面;

  2. onLoad只執(zhí)行一次;

適用:
這種方式一般適用于少數(shù)頁(yè)面之間需要少量數(shù)據(jù)傳遞,如B頁(yè)面需要A頁(yè)面中的1-2個(gè)數(shù)據(jù)等等。

第二種:使用全局變量來(lái)傳遞

在 app.js 文件中定義全局變量 globalData,舊頁(yè)面將要傳遞的數(shù)據(jù)賦值存放在里面,新頁(yè)面調(diào)用全局變量獲取傳遞數(shù)據(jù)值。

// app.js

App({
     // 全局變量
  globalData: {
    name: null
  }
})

//pageA.js
···
getApp().globalData.name = "lin";


//pageB.js
···
this.setData({
  userName: getApp().globalData.name
});

要注意的問(wèn)題:

  1. 使用的時(shí)候,直接使用 getApp() 拿到存儲(chǔ)的信息。

適用:
這種方式一般適用于多個(gè)頁(yè)面或者全部頁(yè)面都需要獲取使用同一個(gè)數(shù)據(jù),比如一開始進(jìn)入首頁(yè)就獲取到的用戶信息等;

第三種:使用本地緩存

使用小程序中的本地緩存Storage,舊頁(yè)面將傳遞數(shù)據(jù)存入緩存中,新頁(yè)面通過(guò)調(diào)用獲取緩存的API得到數(shù)據(jù)。

//pageA.js
···
wx.setStorageSync('sessionId', res.sessionId);


//pageB.js
···
var sessionId = wx.getStorageSync('sessionId');

要注意的問(wèn)題:

  1. Storage每次存入會(huì)覆蓋掉原來(lái)該 key 對(duì)應(yīng)的內(nèi)容。

  2. 如果用戶主動(dòng)刪除小程序或因存儲(chǔ)空間原因被系統(tǒng)清理,Storage中數(shù)據(jù)將被清除。

  3. 單個(gè) key 允許存儲(chǔ)的最大數(shù)據(jù)長(zhǎng)度為 1MB,所有數(shù)據(jù)存儲(chǔ)上限為 10MB。

適用:
這種方式一般適用于即使小程序退出然后再重新進(jìn)入,也要保留的數(shù)據(jù),類似于登錄狀態(tài)的保留等。

以上是“小程序頁(yè)面間傳遞數(shù)據(jù)的方式有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI