微信小程序:界面?zhèn)髦?、取?/h2>

小程序界面?zhèn)髦?/h2>

父級(jí)界面:A界面
子級(jí)界面:B界面

一、url傳值

詳細(xì)的配置參數(shù)可以查看組件導(dǎo)航:navigator,這里不再做過(guò)多的解釋。

  1. 正向傳值:A界面 -->B界面

用 navigator標(biāo)簽或 wx.navigator傳值,A界面向B界面?zhèn)鱥d值

A界面獲取id值傳向B界面如果需要傳多個(gè)參數(shù), 用 & 鏈接即可

    // 方法一:navigator標(biāo)簽傳值
    <navigator url="/page/index/index?id=110" >傳值</navigator>
    <navigator url="/page/index/index?id=110&username=jane&password=123456" >傳值</navigator>

    // 方法二: wx.navigator標(biāo)簽傳值單值、多值傳遞
    wx.navigateTo({
      url: '/page/index/index?id=' + id
    })
    
    wx.navigateTo({
      url: '/page/index/index?id=' + id +'&username='+ username+'&password='+ password
    })
   

B界面接受id值

  /**
  * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面加載
  */
  onLoad: function (options) {
    var id = options.id;
    this.setData({
      id:id,
      username:username,
      password:password,
    })
  },
  1. 反向傳值:B界面 -->A界面

在B界面需要傳值地方代碼如下

    var pages = getCurrentPages() // 獲取棧中全部界面的, 然后把數(shù)據(jù)寫(xiě)入相應(yīng)界面
    var currentPage  = pages[pages.length - 1]  //當(dāng)前界面
    var prePage = pages[pages.length - 2]  //上一個(gè)界面
    var that = this
    prePage.setData({
     id: that.data.id,
    })

在A界面需要接受B界面?zhèn)鬟^(guò)來(lái)值碼如下:這里要在onShow方法里面重新調(diào)用你的數(shù)據(jù)請(qǐng)求或是,為了驗(yàn)證是否傳值成功,你可以打印驗(yàn)證 注:由于你從B界面返回A界面使用了wx.navigateBack,所以當(dāng)你回到A界面后onLoad、onReady方法不響應(yīng),onShow方法響應(yīng),所以這里你需要特別注意--生命周期

    /**
    * 生命周期函數(shù)--監(jiān)聽(tīng)頁(yè)面顯示
    */
    onShow: function () {
      //獲取數(shù)據(jù) 
      this.gainData() 
      // 打印你的傳值
      console.log("res==", this.data.res)
    },

二、本地儲(chǔ)存 tips:本地?cái)?shù)據(jù)存儲(chǔ)的大小限制為 10MB

每個(gè)微信小程序都可能用到本地緩存數(shù)據(jù),這里我們可以通過(guò)調(diào)用微信提供的方法:wx.setStorage、wx.setStorageSync、wx.getStorage、wx.getStorageSync、wx.clearStorage、wx.clearStorageSync、實(shí)現(xiàn)對(duì)數(shù)據(jù)本地緩存、獲取、清除??蓞⒖嘉⑿判〕绦?a target="_blank" rel="nofollow">【數(shù)據(jù)緩存】開(kāi)發(fā)文檔,查看詳情。

在A界面獲取數(shù)據(jù)并緩存到本地

wx.setStorageSync('user_info', dic);

在B界面獲取數(shù)據(jù)并緩存到本地

     var user_info = wx.getStorageSync("user_info")
     this.setData({
        username: user_info.username
     });

從本地緩存中同步移除指定 key。這里具體使用同步或是異步需要根據(jù)你存儲(chǔ)時(shí)的方法,或是同步清理本地?cái)?shù)據(jù)緩存wx.clearStorageSync()

      wx.removeStorageSync("user_info")

同理你可以在B界面?zhèn)髦翟贏界面取值,只不過(guò)這里你需要注意存儲(chǔ)、獲取的順序,先存后取,否則你是拿不到值的。

三、全局的app對(duì)象

這里你需要在app.js文件,寫(xiě)好你要全局使用的數(shù)據(jù)

        //用戶數(shù)據(jù)
        appData: {
            user_info:null,
        }

在你需要賦值的地方引用app,代碼如下:

        var app = getApp();
        app.appData.user_info = {"username":"jane"};

在你需要取值的地方引用app,代碼如下:

        var app = getApp();
        var user_info = app.appData.user_info;
        this.setData({
            username: user_info.username
       });

以上是本人自學(xué)小程序以來(lái)的一些總結(jié),如存在問(wèn)題請(qǐng)?zhí)岢鲈u(píng)論,或者可以查看我的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容