其他分享
首页 > 其他分享> > 如何实时监听vuex里的数据变化,并更新消息提示红点

如何实时监听vuex里的数据变化,并更新消息提示红点

作者:互联网

想实现一个功能,当我们对页面提交操作时,我们的消息图标的右上角会出现一个提示红点。
在这里插入图片描述
在这里插入图片描述

一开始想到的是用mounted和updated对红点提示进行更新,但是可以发现并不能实时更新,因为mounted和updated是只有当我们触发了提示消息的组件时才会更新

接下来我们可以用到computed和watch对vuex里的数据变化监听
我们已经在state中定义了一个存放消息的数组

 state: {
 //存放我的消息数据
  UserMesssage:[]
  }

返回我们有提示红点的组件页面,

提示红点的组件页面和如何在UserMessage中添加消息,在这里就不写页面样式和方法了,直接说如何监听

computed:{
    //监听vuex的消息数据并返回给watch
    //我们只需要获取UserMessage的长度即可
    watchMyMessage(){
      return this.$store.state.UserMessage.length
    }
  },
  watch: {
    //监听watchMyMessage,当UserMessage对其监听改变时进行判断
    //immediate创建时立即执行一次
    //huandler里面写了红点提示应该在什么条件下才会显示
    //因为当我们点击消息时红点提示会消失(这一步的判断在@click监听中完成),只有当我们UserMessage的长度newVal大于oldVal时才会有红点提示,
    watchMyMessage:{
      immediate:true,
      handler:function (newVal,oldVal)  {
        if (newVal>oldVal){
          this.isShowTip = true
        }
        else{
          this.isShowTip = false
        }
      }
    }
  }

标签:UserMessage,提示,实时,监听,消息,vuex,红点,页面
来源: https://blog.csdn.net/weixin_47596965/article/details/118438455