uni-app微信小程序封装全局判断是否登录方法结合全局变量
新建的uniapp项目会有个app.vue文件,在此文件下onLaunch应用生命周期封装一个方法(把全局变量定义一下):注意:onLaunch应用生命周期只会触发一次<script>export default {//全局变量globalData: {//用于判断用户是否登录(默认为否)userLogin: false,},onLaunch: function() {console.
·
新建的uni-app项目会有个app.vue文件,在此文件下 onLaunch应用生命周期封装一个方法(把全局变量定义一下):
注意:onLaunch应用生命周期只会触发一次
app.vue:
<script>
export default {
//全局变量
globalData: {
//用于判断用户是否登录(默认为否)
userLogin: false,
},
onLaunch: function() {
console.log('App Launch')
//是否判断登录
wx.checkSession({
success: () => {
//没用到token可以直接忽略以下步骤:
console.log('登录未过期');
const user_token = uni.getStorageSync('user_token');
if(user_token){
this.globalData.userLogin = true;
}else{
//解决token消失但登录未过期问题
this.globalData.userLogin = false;
//没登录就异步删除验证token
uni.removeStorage({
key: 'user_token',
success: function (res) {
console.log('user_token移除成功');
}
});
}
//没用到token走这个步骤:
//this.globalData.userLogin = false;
},
fail: () => {
console.log('登录已过期');
this.globalData.userLogin = false;
//没用到token可以直接忽略以下步骤:
//没登录就异步删除验证token
uni.removeStorage({
key: 'user_token',
success: function (res) {
console.log('user_token移除成功');
}
});
}
})
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="less">
/*每个页面公共css */
@import url("@/common/css/global.css");
@import url("@/common/css/index.less");
</style>
封装完成之后在pages页面里(自定义组件或页面里)获取全局变量即可:
pages页面里获取:
onLoad() {
//获取全局变量 赋值后处理业务逻辑
let app = getApp();
this.userLoginFlag = app.globalData.userLogin;
console.log(app.globalData.userLogin);
}
自定义组件或者页面(组件生命周期):
created() {
//拿到全局变量
let app = getApp();
console.log(app.globalData.userLogin);
this.userLoginFlag = app.globalData.userLogin;
}
更多推荐
已为社区贡献5条内容
所有评论(0)