首先在小程序中,所有頁面的路由都由框架統(tǒng)一管理。getCurrentPages() 函數(shù)用于獲取當(dāng)前頁面棧的實(shí)例菠发,以數(shù)組形式按棧的順序給出王滤,第一個元素為首頁,最后一個元素為當(dāng)前頁面滓鸠。
// 獲取加載的頁面對象
const pages = getCurrentPages();
// 獲取當(dāng)前頁面的對象
const currentPage = pages[pages.length - 1];
tips:
1.不要嘗試修改頁面棧雁乡,會導(dǎo)致路由以及頁面狀態(tài)錯誤。
2.不要在 App.onLaunch 的時候調(diào)用 getCurrentPages()糜俗,此時 page 還沒有生成踱稍。
一、獲取當(dāng)前頁面url
// 當(dāng)前頁面url
const url = currentPage.route;
二悠抹、參數(shù)傳遞
1.全部變量珠月,小程序初始化時會讀取app.js文件,我們可以在這里配置全局變量锌钮,如:圖片訪問地址桥温、請求地址、appid等等梁丘。
globalData: {
appid: '123654',
requestUrl: 'https://www.test.com/'
}
在頁面中侵浸,可以通過 getApp()方法獲取到全局應(yīng)用對象,可以進(jìn)行讀取或更改氛谜。
var app = getApp();
var appid = app.globalData.appid;
2.小程序本地緩存
可以將一些常用變量(如appid)或者用戶行為(如搜索歷史)掏觉、長期不改變的圖片(減少請求)等。本地緩存一經(jīng)儲存值漫,其它頁面均可隨時獲取使用澳腹。
// 存儲
wx.setStorageSync("appid", "123654");
// 讀取
wx.getStorageSync("appid");
3.url傳遞
這個方法較適用于頁面之前跳轉(zhuǎn)(如商品列表跳轉(zhuǎn)商品詳情),直接拼接在url里就可以了杨何。
wx.navigateTo({
url: '../test/test?id=1'
})
獲取方式:
①getCurrentPages() 函數(shù)獲取
const options = currentPage.options;
②onLoad里直接獲取
onLoad: function (options) {
console.log(options)
}
小結(jié):
小程序參數(shù)酱塔、數(shù)據(jù)傳遞包括不限于以上幾種,大家可以結(jié)合實(shí)際情況使用危虱,如:
1.全局變量羊娃,就在app.js配置
2.父、子及傳遞可以使用url傳遞
3.登錄狀態(tài)(token)等可以使用本地緩存埃跷,方便隨時調(diào)用