微信小程序:數(shù)據(jù)存儲(chǔ)、傳值、取值詳解
小程序界面?zhèn)髦?/p>
父級(jí)界面:A界面
子級(jí)界面:B界面
一、url傳值
詳細(xì)的配置參數(shù)可以查看組件導(dǎo)航:navigator,這里不再做過多的解釋。
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)聽頁(yè)面加載 */ onLoad: function (options) { var id = options.id; this.setData({ id:id, username:username, password:password, }) },
反向傳值:B界面 –>A界面
在B界面需要傳值地方代碼如下
var pages = getCurrentPages() // 獲取棧中全部界面的, 然后把數(shù)據(jù)寫入相應(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)鬟^來(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)聽頁(yè)面顯示 */ onShow: function () { //獲取數(shù)據(jù) this.gainData() // 打印你的傳值 console.log("res==", this.data.res) },
二、本地儲(chǔ)存 tips:本地?cái)?shù)據(jù)存儲(chǔ)的大小限制為 10MB
每個(gè)微信小程序都可能用到本地緩存數(shù)據(jù),這里我們可以通過調(diào)用微信提供的方法:wx.setStorage、wx.setStorageSync、wx.getStorage、wx.getStorageSync、wx.clearStorage、wx.clearStorageSync、實(shí)現(xiàn)對(duì)數(shù)據(jù)本地緩存、獲取、清除??蓞⒖嘉⑿判〕绦?a target="_blank" rel="external nofollow" >【數(shù)據(jù)緩存】開發(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)髦翟贏界面取值,只不過這里你需要注意存儲(chǔ)、獲取的順序,先存后取,否則你是拿不到值的。
三、全局的app對(duì)象
這里你需要在app.js文件,寫好你要全局使用的數(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 });
以上所述是小編給大家介紹的微信小程序:數(shù)據(jù)存儲(chǔ)、傳值、取值詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js實(shí)現(xiàn)將選中內(nèi)容分享到新浪或騰訊微博
這篇文章主要介紹了js實(shí)現(xiàn)將選中內(nèi)容分享到新浪或騰訊微博,需要的朋友可以參考下2015-12-12JS實(shí)現(xiàn)提交表單前的數(shù)字及郵箱校檢功能
在項(xiàng)目開發(fā)中經(jīng)常會(huì)遇到表單提交功能,今天小編抽空給大家分享JS實(shí)現(xiàn)提交表單前的數(shù)字及郵箱校檢功能,需要的朋友參考下吧2017-11-11JavaScript中數(shù)組嵌套對(duì)象排序方法的示例詳解
在?JavaScript?中,可以使用?sort()?方法對(duì)包含嵌套對(duì)象的數(shù)組進(jìn)行排序,本文將通過三個(gè)簡(jiǎn)單的示例為大家進(jìn)行簡(jiǎn)單的介紹,需要的可以參考下2024-03-03JavaScript 輪播圖和自定義滾動(dòng)條配合鼠標(biāo)滾輪分享代碼貼
本文給大家分享一段js輪播圖和自定義滾動(dòng)條的代碼片段,布局和樣式小編沒給大家多介紹,大家可以根據(jù)個(gè)人需求優(yōu)化,具體實(shí)現(xiàn)代碼,大家可以參考下面代碼片段2016-10-10js實(shí)現(xiàn)鼠標(biāo)滑動(dòng)到某個(gè)div禁止?jié)L動(dòng)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)鼠標(biāo)滑動(dòng)到某個(gè)div禁止?jié)L動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09