uniapp中利用监视vuex中state数据配合uview实现登录消息提示
先看效果图
登录成功或者退出成功都能够给用户提示,提示用户体验!
uview的顶部消息提示详情可见u-top-tips
设计思路
首先是页面的布局
是将顶部消息提示写在了个人详情页内
<u-top-tips ref="loginTips"></u-top-tips>
然后又要显示退出信息,考虑到简洁性,我把显示提示框封装成了methods内的一个方法
showLoginModal(title, type) {this.$refs.loginTips.show({title,type,duration: '2000'})
}
Vuex状态管理
接下来就是把登录状态定义在vuex内的state了
state数据
在mutations定义一个方法用来控制登录状态
mutations
在用户点击登录并且成功授权后commit整个ADDSERINFO,就处于成功的登录状态了(是处于登录页面来触发的注意不是在个人详情页!)
methods: {...mapMutations(["ADDUSERINFO"]),// 登录goLogin() {const that = this..................that.ADDUSERINFO(that.userInfo)// 返回上一页that.$Router.back(1)},..................}
},
在uni.getUserProfile方法内this指向并不是本页面所以一开始用了
const that = this
来改正指向
到这里已经将登录状态已经改了,我的做法是通过监视属性来检测vuex中state数据的变化的
监视vuex数据变化
在哪触发事件就在哪监测数据,所以我是在个人页面来监测登录状态的变化,这里我配合了计算属性来拿到登录状态,直接拿或者用data定义的数据接收,都好像会失去state的数据响应式,监测不到变化
类似这样,监测不到state的变化
通过计算属性那state数据
watch: {// 监视登录状态的变化,出现对应的消息提示isLogin(val) {// 登录成功提示if(val){this.showLoginModal("登录成功", "success")}// 成功退出提示else{this.showLoginModal("您已成功退出账号", "info")}}
},
computed: {...mapState(["isLogin"])
},
这样就能成功监视登录状态的改变了,只要是改变为登录状态就提示登录成功,不然就是退出账号的情况会触发登录状态的改变了
退出登录
我是在个人页面设置了一个点击事件,点击后出现模态框确认就能够提交退出的mutation了
loginOut() {this.DELUSERINFO()
},
mutations
DELUSERINFO(state){state.userInfo={}state.isLogin=false
},
这样登录状态又变成false,触发watch里的事件出现退出成功的提示
uniapp中利用监视vuex中state数据配合uview实现登录消息提示相关推荐
- [原创]如何在Windows XP 中利用监视计算机中的资源使用情况
[原创]如何在Windows XP 中利用监视计算机中的资源使用情况 1. 开始菜单->控制面板->管理工具->性能 2. 右键单击添加计数器 3. 选择要监视计算机,我在这里选择了 ...
- uniapp、vue,vuex中state改变,getters不动态改变的完美解决方案!
uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! 参考文章: (1)uniapp.vue,vuex中state改变,getters不动态改变的完美解决方案! ( ...
- Sql Server 中利用游标对table 的数据进行分组统计式输出…
Sql Server 中利用游标对table 的数据进行分组统计式输出- Table Name: Tb_Color Create table Tb_Color(id int identity(1,1) ...
- CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据
1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Re ...
- Pycharm中利用arcpy实现灯光遥感数据的建成区批量提取
一.突变检测法[8] 通过确定基于突变检测原则的单个阈值,该阈值既有显著降低灯光数据的噪声以及沿海城市的灯光溢出的功能,同时也能保留具有连续灯光亮度值的多边形即较大的城市区域.对于分离城市灯光区与非城 ...
- [Django]网页中利用ajax实现批量导入数据功能
url.py代码: url(r'^workimport/$', 'keywork.views.import_keywork', name='import_keywork') view.py代码: fr ...
- 中livechart显示大数据_Servlet中利用jdbc加载显示数据
基本分层思路是 已经完成查询所有新闻的方法在DAO中 最后将数据返回 现在我们去service中完成代码,先准备一个接口 编写一个实现类 编写代码,在Service中只会出现Dao的东西 然后在我们之 ...
- mysql shell可视化_shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中...
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- vuex中的getters
vuex中的getters vuex中的getters与vue中的computed计算属性十分相似,在vuex中的Store仓库里,state就是用来存放数据,而getters类似于computed计 ...
最新文章
- BEBLID:增强的高效局部图像特征描述符
- bs4 CSS选择器
- word打印版面自动缩小的问题解决
- pytorch clamp 与clamp_区别
- 若依如何实现翻页保留选择?
- Pytorch---训练与测试时爆显存(out of memory)的一个解决方案(torch.cuda.empty_cache())
- docx文档怎么排列图片_PDF怎么转Word?这几款软件满足你的要求
- 《高翔视觉slam十四讲》学习笔记 第九讲 后端
- 线性规划 (一) 线性规划的基本形式及各种概念
- 服务器wifi模块通讯协议,WiFi模块 TCP/IP协议栈
- CPU卡简介/CPU卡和非接触式IC卡的区别
- 道教的精神———闻一多
- 快速分析京东物流详情,并导出EXCEL表格
- css3缓慢出现,让CSS3旋转开始缓慢然后结束缓慢?
- css 上中下三行布局 4种方式
- EditText相关设置
- shell批处理 FFmpeg 批量转换格式 webm转MP4
- 运动都需要什么装备?运动锻炼必备物品推荐
- 盐城北大青鸟线上课丨云端相见,一起努力
- SQL语句的执行顺序以及流程