應用場景一般是:
頁面A,用戶執行操作
-->需要登錄后操作
-->引導至登錄頁登錄
-->登錄成功后:1、跳轉至某一指定頁面 或 2、 navigateBack()上一頁(頁面A)
①跳轉至某一指定頁面(注:沒有uniapp的自動緩存,頁面會刷新,可通過watch監聽用戶登錄狀態,如下)
data(){
return{
userToken: uni.getStorageSync('usertoken')||'',
}
}
watch:{
userToken: function(){ //監聽登錄狀態改變
//do something
},
},
②navigateBack()上一頁(注:返回上一頁,有uniapp的自動緩存,頁面不刷新。可以在onShow里監聽用戶登錄狀態,如下)
data(){
return{
userToken: uni.getStorageSync('usertoken')||'',
}
}
onShow() {
if(!this.userToken){ //監聽登錄狀態改變:未登錄->已登錄
this.userToken=uni.getStorageSync('usertoken')||''
if(this.userToken){
//do something
}
}else if(this.userToken){ //監聽登錄狀態改變:已登錄->未登錄
this.userToken=uni.getStorageSync('usertoken')||''
if(!this.userToken){
//do something
}
}
},
//注:一般情況是監聽用戶未登錄->已登錄。所以根據需要寫即可,else if后面的代碼可不寫。