uniapp中刷新本頁(yè)面的三種方法
方法一
利用路由,強(qiáng)制uniapp刷新當(dāng)前頁(yè)面
setTimeout(() => {
this.$router.go(0)
}, 500)方法二
關(guān)閉當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某給頁(yè)面(如果想刷新當(dāng)前頁(yè)面也可以使用該方法):
uni.redirectTo({
url: '../details/details?gid=' + this.gid //寫你的路徑
});還可用定時(shí)器來對(duì)該方法進(jìn)行優(yōu)化,使其稍微延緩動(dòng)畫
setTimeout( () => {
uni.redirectTo({
url: '../details/details?gid=' + this.gid
});
}, 500)方法三
通過獲取該頁(yè)面實(shí)例執(zhí)行其內(nèi)部的生命周期方法來刷新頁(yè)面
reload() {
// 頁(yè)面重載
const pages = getCurrentPages()
// 聲明一個(gè)pages使用getCurrentPages方法
const curPage = pages[pages.length - 1]
// 聲明一個(gè)當(dāng)前頁(yè)面
curPage.onLoad(curPage.options) // 傳入?yún)?shù)
curPage.onShow()
curPage.onReady()
// 執(zhí)行刷新
},補(bǔ)充:uniapp如何根據(jù)路由手動(dòng)onload刷新某一個(gè)頁(yè)面
uniapp如何手動(dòng)刷新要跳轉(zhuǎn)到的頁(yè)面?相信很多人百度查到的答案都是如下:
uni.switchTab({
url: '/pages/user/user',
success(){
let page = getCurrentPages().pop(); //跳轉(zhuǎn)頁(yè)面成功之后
if (!page) return;
page.onLoad(); //重新刷新頁(yè)面
}
});但是在我做的項(xiàng)目中,會(huì)出現(xiàn)莫名的bug,pop出來的頁(yè)面不是想要的,而且后面修改頁(yè)面跳轉(zhuǎn)的時(shí)候可能要修改代碼,根據(jù)頁(yè)面棧pop出來頁(yè)面刷新很難定位刷新到我們想要的頁(yè)面。那么有沒有什么辦法可以根據(jù)路由定位到我們要刷新的頁(yè)面呢,根據(jù)官方api,我們可以獲取已渲染加載的頁(yè)面數(shù)組let pages = getCurrentPages(),同時(shí)每一個(gè)頁(yè)面都有page.route()獲取該頁(yè)面的路由。所有我們只要遍歷已渲染加載的pages,再比較pages里面的路由在調(diào)用相應(yīng)頁(yè)面的onload事件就好了,代碼如下:
uni.switchTab({
url : '/pages/test/test',
success() {
let pages = getCurrentPages();
for(let i = 0; i < pages.length; i ++){
let tmppg = pages[i];
if(tmppg.route == "pages/test/test"){
tmppg.onLoad();
}
// console.log('tmppg:' + tmppg)
// console.log('tmppg.route:' + tmppg.route)
}
}
})總結(jié)
到此這篇關(guān)于uniapp中刷新本頁(yè)面的三種方法的文章就介紹到這了,更多相關(guān)uniapp刷新本頁(yè)面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
javascript將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)的三個(gè)方法
將浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)方法有很多,本例為大家介紹常用的三個(gè)方法,如果讀者想到其他好用方法,也可以交流一下2014-06-06
JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞)
這篇文章主要介紹了JS判斷傳入函數(shù)的參數(shù)是否為空(函數(shù)參數(shù)是否傳遞),需要的朋友可以參考下2023-05-05
JavaScript復(fù)制內(nèi)容到剪貼板的兩種常用方法
最近一個(gè)活動(dòng)頁(yè)面中有一個(gè)小需求,用戶點(diǎn)擊或者長(zhǎng)按就可以復(fù)制內(nèi)容到剪貼板,記錄一下實(shí)現(xiàn)過程和遇到的坑,需要的朋友可以參考下2018-02-02
JavaScript的String字符串對(duì)象常用操作總結(jié)
String對(duì)象用于存儲(chǔ)字符串?dāng)?shù)據(jù),這里我們做了JavaScript的String字符串對(duì)象常用操作總結(jié),需要的朋友可以參考下2016-05-05
Cpage.js給組件綁定事件的實(shí)現(xiàn)代碼
Cpage.js是一款輕量級(jí)的Mvvm框架,使用TypeScript(JavaScript的超集)開發(fā)。下面通過本文給大家分享Cpage.js給組件綁定事件的實(shí)現(xiàn)代碼,需要的的朋友參考下吧2017-08-08
基于JS實(shí)現(xiàn)一個(gè)可拖拽的容器布局組件
這篇文章主要為大家詳細(xì)介紹了如何基于JavaScript實(shí)現(xiàn)一個(gè)可拖拽的容器布局組件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12

