中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

如何在微信小程序的頁面間傳遞數據?

2021-01-30    分類: 微信小程序

在微信小程序的開發中,我們會經常遇到頁面間數據傳遞或者相互影響的問題。在實際的開發過程中,可以通過以下幾種方法來實現。

使用全局變量

全局變量實際上是定義了一個全局的對象,并在每個頁面中引入。

在初始化代碼的時候,小程序會讀取一個 app.js 的文件,在這里我們可以定義我們所需要的全局變量。

//app.js ... App({ globalData : { foo : 'bar' }

});

然后在頁面中,可以通過 getApp() 方法獲取到全局應用對象,可以對全局變量進行讀取并更改:

//page.js ... var app = getApp() var getFoo = app.globalData.foo app.globalData.foo = 'fun'

由于 app.js 在項目中是用來做基礎配置的,因此不建議將很多變量放在這里配置。一般情況下會將一些持久化的常量配置在這里,對于經常需要變動的量不建議用這個方法。

使用本地緩存

本地緩存是微信小程序提供的一個功能,可以將用戶產生的數據做本地的持久化,類似于 NoSQL,可以進行讀取和修改的操作。

那么在不同的頁面之間,如何利用它,進行數據的交互呢?

假設我們在 A 頁面保存了用戶的信息。

// pageA.js ... var developer = {

  name: 'raymond',

  gender: 'male' }


wx.setStorageSync('developer', developer);

這樣做,這個數據就存在了本地。當在 B 頁面需要使用的時候,可以直接的獲取到數據池中的數據,并進行 CRUD 操作:

//pageB.js ... // Retrieve var developer = (wx.getStorageSync('developer') || []) // Update developer.name = 'Jiayang' wx.setStorageSync('developer', developer); // Delete wx.removeStorage({

  key: 'developer' })

需要注意的是,在回到 A 頁面的時候,小程序需要重新讀取數據。這時候,可以選擇放在生命周期的父級往子級頁面(模板)的數據傳遞

我們通常會在頁面之間進行跳轉、重定向的操作。這時候,我們可以選擇將部分數據放在pageC.js ... // Navigate wx.navigateTo({ url: '../pageD/pageD?name=raymond&gender=male',

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

})

在 D 頁面中,我們可以這樣接收到到所傳進來的參數:

// pageD.js ...

Page({

  onLoad: function(option){

    console.log(option.name + 'is' + option.gender)

    this.setData({ option: option })

  }

})

wx.navigateTo 微信新提供的 wx.reLaunch 接口可以傳入參數。

另外,在頁面中我們通常會用到一些組件模板,因此在父子之間也會有相應的數據傳遞。

使用 name 屬性,作為模板的名字。然后在這里面使用 is 屬性,聲明需要的使用的模板。

{{index}}: {{msg}} Time: {{time}}

然后將模板所需要的<template is="msgItem" data="{{...item}}"/>

Page({ data: { item: { index: 0, msg: 'this is a template', time: '2016-09-15' }

  }

})

傳入模板的除了變量,還可以是事件方法對象。例如,模板中的點擊事件,可以傳遞到使用模板的元素中。

通過獲取到頁面對象進行數據操作

這個方法的精髓,是通過獲取到其他頁面的對象原型,然后通過原型方法//pageE.js ... Page({ data: { index: 1 }

})

當跳轉到下一個頁面 F 之后,假定在 F 中有操作需要對 E 中的數據有修改,則可以使用以下方法:

pageF.js

...

Page({

  changeIndexInE: function(){ var pages = getCurrentPages(); var prevPage = pages[pages.length - 2];

    prevPage.setData({

      index: 0 })

  }

})

這個方法可以操作頁面堆棧里面的頁面的數據,可以做到讓后一級頁面對上級頁面群的數據管理。

小結

在微信小程序中有以上并且不局限于以上幾種的方式進行頁面間數據傳遞、交互,在實際應用中可以組合使用。比如說:

●一些常量,可以交由●涉及到下級頁面或者模板元素的數據,可以通過傳入參數的方式傳入。

●后級頁面可以通過獲取堆棧里的頁面對象快速修改上級的數據。

在實際應用中結合使用,可以更好地管理小程序的數據。

本文如有不周到之處,可以留言進行討論。

當前標題:如何在微信小程序的頁面間傳遞數據?
URL鏈接:http://m.2m8n56k.cn/news33/98283.html

網站建設、網絡推廣公司-創新互聯,是專注品牌與效果的網站制作,網絡營銷seo公司;服務項目有微信小程序

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站制作
主站蜘蛛池模板: 国产精品久久久久久影院 | 色哟哟国产成人精品 | 久色视频在线观看 | 精品国产网| 伊大人香蕉久久网欧美 | 日韩免费观看的一级毛片 | 欧美一级性 | 日本aaaa精品免费视频 | 亚洲欧美日韩精品在线 | 亚洲精品国产一区二区三区在 | 九九视频在线观看视频6 | 日本www高清 | 亚洲国产小视频 | 国产精品亚洲一区二区三区久久 | 曰本黄页 | 国产精品久久久久毛片真精品 | 456主播喷水在线观看 | 成人黄激情免费视频 | 久久狠狠 | 91精品国产91热久久久久福利 | 成人欧美视频免费看黄黄 | 日本一区二区不卡久久入口 | 亚洲男人的天堂久久香蕉 | 国产一区二区三区在线观看免费 | 久久精品99 | 国产深夜福利视频观看 | 精品视频在线观看一区二区三区 | 精品一区二区三区在线播放 | 国产人成免费视频 | 国产欧美日韩精品一区二区三区 | 国产 高清 在线 | www.乱 | 国产欧美日韩中文久久 | 男人的天堂在线观看视频不卡 | 免费观看一级特黄三大片视频 | av狼论坛 | 中文字幕日韩欧美一区二区三区 | 午夜大片免费男女爽爽影院久久 | 日韩乱码视频 | 黄色三级欧美 | 欧美真人视频一级毛片 |