小程序界面傳值
父級界面:A界面
子級界面:B界面
一、url傳值
詳細的配置參數可以查看組件導航:navigator,這里不再做過多的解釋。
1. 正向傳值:A界面 –>B界面
用 navigator標簽或 wx.navigator傳值,A界面向B界面傳id值
A界面獲取id值傳向B界面如果需要傳多個參數, 用 & 鏈接即可
// 方法一: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值
/** * 生命周期函數--監聽頁面加載 */ onLoad: function (options) { var id = options.id; this.setData({ id:id, username:username, password:password, }) },反向傳值:B界面 –>A界面
在B界面需要傳值地方代碼如下
var pages = getCurrentPages() // 獲取棧中全部界面的, 然后把數據寫入相應界面 var currentPage = pages[pages.length - 1] //當前界面 var prePage = pages[pages.length - 2] //上一個界面 var that = this prePage.setData({ id: that.data.id, })在A界面需要接受B界面傳過來值碼如下:這里要在onShow方法里面重新調用你的數據請求或是,為了驗證是否傳值成功,你可以打印驗證 注:由于你從B界面返回A界面使用了wx.navigateBack,所以當你回到A界面后onLoad、onReady方法不響應,onShow方法響應,所以這里你需要特別注意--生命周期
/** * 生命周期函數--監聽頁面顯示 */ onShow: function () { //獲取數據 this.gainData() // 打印你的傳值 console.log("res==", this.data.res) },二、本地儲存 tips:本地數據存儲的大小限制為 10MB
每個微信小程序都可能用到本地緩存數據,這里我們可以通過調用微信提供的方法:wx.setStorage、wx.setStorageSync、wx.getStorage、wx.getStorageSync、wx.clearStorage、wx.clearStorageSync、實現對數據本地緩存、獲取、清除。可參考微信小程序【數據緩存】開發文檔,查看詳情。
在A界面獲取數據并緩存到本地
wx.setStorageSync('user_info', dic);在B界面獲取數據并緩存到本地
var user_info = wx.getStorageSync("user_info") this.setData({ username: user_info.username });從本地緩存中同步移除指定 key。這里具體使用同步或是異步需要根據你存儲時的方法,或是同步清理本地數據緩存wx.clearStorageSync()
新聞熱點
疑難解答