小程序界面?zhèn)髦?/h2>
父級界面:A界面
子級界面:B界面
一、url傳值
詳細的配置參數(shù)可以查看組件導(dǎo)航:navigator,這里不再做過多的解釋肴盏。
- 正向傳值:A界面 -->B界面
用 navigator標簽或 wx.navigator傳值,A界面向B界面?zhèn)鱥d值
A界面獲取id值傳向B界面如果需要傳多個參數(shù), 用 & 鏈接即可
// 方法一:navigator標簽傳值
<navigator url="/page/index/index?id=110" >傳值</navigator>
<navigator url="/page/index/index?id=110&username=jane&password=123456" >傳值</navigator>
// 方法二: wx.navigator標簽傳值單值帽衙、多值傳遞
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)聽頁面加載
*/
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] //上一個界面
var that = this
prePage.setData({
id: that.data.id,
})
在A界面需要接受B界面?zhèn)鬟^來值碼如下:這里要在onShow方法里面重新調(diào)用你的數(shù)據(jù)請求或是菜皂,為了驗證是否傳值成功,你可以打印驗證 注:由于你從B界面返回A界面使用了wx.navigateBack厉萝,所以當(dāng)你回到A界面后onLoad恍飘、onReady方法不響應(yīng)榨崩,onShow方法響應(yīng),所以這里你需要特別注意--生命周期
/**
* 生命周期函數(shù)--監(jiān)聽頁面顯示
*/
onShow: function () {
//獲取數(shù)據(jù)
this.gainData()
// 打印你的傳值
console.log("res==", this.data.res)
},
二章母、本地儲存 tips:本地數(shù)據(jù)存儲的大小限制為 10MB
每個微信小程序都可能用到本地緩存數(shù)據(jù)母蛛,這里我們可以通過調(diào)用微信提供的方法:wx.setStorage、wx.setStorageSync乳怎、wx.getStorage彩郊、wx.getStorageSync、wx.clearStorage蚪缀、wx.clearStorageSync秫逝、實現(xiàn)對數(shù)據(jù)本地緩存、獲取询枚、清除违帆。可參考微信小程序【數(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ù)你存儲時的方法廉油,或是同步清理本地數(shù)據(jù)緩存wx.clearStorageSync()
wx.removeStorageSync("user_info")
同理你可以在B界面?zhèn)髦翟贏界面取值惠险,只不過這里你需要注意存儲、獲取的順序抒线,先存后取班巩,否則你是拿不到值的。
三嘶炭、全局的app對象
這里你需要在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
});
以上是本人自學(xué)小程序以來的一些總結(jié),如存在問題請?zhí)岢鲈u論,或者可以查看我的博客