应用场景一般是:
页面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后面的代码可不写。