從微信小程序文章列表進入詳情頁時,如何無加載打開詳情頁
我在寫「一個程序手冊」的接口,在列表頁的時候就把文章的所有數據都加載了,所以從文章列表進入詳情頁的時候,其實數據都已經有了,那麼我們是否做到不請求接口直接打開詳情頁呢?
其實是可以的,微信小程序路由提供的getCurrentPages()
函數,可以獲取當前頁面棧的實例。
這個函數提供的頁面棧以數組形式按棧的順序給出,第一個元素為首頁,最後一個元素為當前頁面,所以倒數第二個元素就是上一頁,我們可以使用這個函數實現無加載打開詳情頁,具體代碼:
const loadArticle = function (id) {
let pages = getCurrentPages()
let count = pages.length;
let article = null;
if(count >=2 && (pages[count-2].data.is_list == true && pages[count-2].data.articles) ){
let articles = pages[count-2].data.articles.filter(item => item.id == id);
if(articles){
article = articles[0];
}
}
if(article){
this.setData({
article: article
})
}else{
// 使用 API 远程加载文章详情
}
}
體驗Demo,請掃描一個程序手冊,看看從列表頁進入詳情頁是不是很快: