背景:微信H5页面,授权登录,从登录信息中判断是否弹出新人券红包
功能需求:1.商城项目推出新人券活动,登录后新用户弹出 优惠券红包。
2.登录后 老用户不会弹出新人红包
3.不登录弹出新人红包
问题: 1. 用户正常手机号登录时,新人券弹出正常,微信授权登录时,老用户新人券大概率也会弹出
原因:
在项目首页判断的是否需要弹出新人券(不登陆或老用户不弹),而微信授权登录方法写在了main.js里,
顺便复习下 vue项目各文件的执行顺序,index.html > app.vue > main.js > app.vue -- mouted() > index.vue
当通过微信授权的方式登陆时 , 虽然main.js先执行授权登录, 但由于异步,用户信息还没返回,代码运行到index.vue相当于没有登录,一直弹出新人券。考虑到小改动代码的原则(小公司测试不存在的),在mian.js返回结果时,设置vuex store的某个值,在index.vue监听该值的变化,判断新人券是否弹出。
这样处理,授权登录中,如果是非新人 ,新人券会闪一下(判断为未登录)后消失(main.js的返回结果判断不弹出),又在index.vue里判断一下授权登录中不调用原有判断是否登录方法。
小结:1个月前改的bug,现在有点忘了,只总结了大概思路,细节没说到位,新人第一次发文章,望理解