方法一:利用url
如下圖所示,點擊更多按鈕跳轉到新頁面,並將對應的電影分類參數傳遞到新頁面,例如圖中應該傳遞的參數為“豆瓣電影Top250”。
如下代碼所示,首先在.wxml文件中找到更多按鈕並綁定相應方法,接着通過data-name指定所傳參數的名字,如圖所傳參數名為:category。
<view class="movie-header"> <text class="header-title">{{categoryTitle}}</text> <text class="header-more" catchtap="onMore" data-category="{{categoryTitle}}">更多 ></text> </view>
接着在.js文件中編寫相應的方法,在url中帶上相應參數即可,在url中問號之后的部分都是參數。
onMore: function(event){ var category = event.currentTarget.dataset.category; wx.navigateTo({ url: '../more-movie/more-movie?category=' + category, }) }
在這里我們使用的路由函數是wx.navigateTo。但是如果所要跳轉的頁面帶有tabBar,那么路由函數必須使用wx.switchTab。
onLoad: function (options) { var category = options.category; }
跳轉到新頁面后,只需在onLoad函數加上上面代碼即可獲取所傳參數。
方法二:利用緩存
如下圖所示,我們在歡迎頁面獲取了用戶的昵稱和頭像,但是我們在其他頁面也需要使用該昵稱,最容易想到的辦法就是再次向服務器請求數據,但是這種方法並不高明,重復地請求數據是沒有必要的。我們可以將數據保存在緩存中,需要使用的時候從緩存中提取即可。
微信小程序提供的緩存方法有同步和異步之分,一般情況下我們推薦使用同步方法,如下代碼所示,我們獲取了用戶信息並將昵稱保存在緩存中。
onLoad: function (options) { wx.getUserInfo({ success: function (res) { wx.setStorageSync("userName", res.userInfo.nickName); } }) }
獲取緩存的方法很簡單,在任意需要使用緩存數據的頁面.js文件中加上如下代碼即可。這里我們將昵稱保存為userName,因此當需要使用時只需wx.getStorageSync("userName")即可。
var userName = wx.getStorageSync("userName");
方法三:利用全局變量
首先需要知道的是,全局變量在app.js中定義。如下圖所示,我們需要在不同頁面獲取音樂的播放狀態。
我們定義一個全局變量g_isPlayingMusic來保存播放狀態,默認為false。
App({ onLaunch: function () { }, globalData: { g_isPlayingMusic: false } })
在需要獲取該變量的頁面.js文件中按照如下代碼即可獲取。
var app = getApp(); Page({ data: { isPlayingMusic: app.globalData.g_isPlayingMusic } })
獲取之后進行修改也很簡單,只需賦值即可。
app.globalData.g_isPlayingMusic = true;