Element-UI消息提示组件Message在Vuex中的调用实现

2023-05-16

在最近的项目开发中,前端部分使用 Vue 开发,整个页面基于 Element-UI 实现。

由于是单页面多组件应用,使用了 Vuex 做状态管理。

为了页面交互的友好和风格的统一,消息提醒使用 Element-UIMessage消息提示, 不使用 window.alert

this.$message({
     showClose: true,
     message: '警告哦,这是一条警告消息',
     type: 'warning'
   });

然而,系统使用了 Vuex 做状态管理,在 actions 中的方法中,this 并没有 $message 的引用,后续还需研究下相关的对象之间的关系,但是这次从另外一个角度,对这个问题进行了考虑。

通过这个思路,便于我们更灵活的控制js脚本。这里通过 Message消息提示 组件来演示。

我们知道 Vuex 的状态管理是通过数据进行页面管理的,也就是说所有的页面变化其实都是数据的变化引起的。

state 中添加属性:

const state = {
   msg:{type:"success", content:"", count:0},
   //其他属性...
}

新建一个 Msg.vue 的组件:

<template>
  <div id="msg-dependencies" v-if="msgCount == 0">
  </div>
</template>

<script>
  export default {
      data(){
        return {

        }
      },
      computed:{
         msgCount(){
           var type = this.$store.state.msg.type;
           var msg = this.$store.state.msg.content;
           if(msg !== "") {
             var param = { "type":type, message:msg };
             console.log("message param:",param)
             this.$message(param);
           }
           return this.$store.state.msg.count;
         }
      }
  }
</script>

组件内的属性 msgCountcomputed 属性,仅仅是为了跟踪 statemsg.count 的变更,并无实际意义。

mutations 中定义消息触发方法:

export const showInfoMsg = (state, content) => {
  console.log("show info msg:", content);
  state.msg.type = "info";
  state.msg.content = content;
  state.msg.count = state.msg.count + 1;
}

每次调用都会触发 msg.count 的变更,进行反馈到 Msg.vue 组件中,算是vue为我们提供的一种回调函数。

组件内调用

this.$store.commit("showInfoMsg","删除成功!");

或者actions内执行类似调用

context.commit("showInfoMsg","删除成功!");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Element-UI消息提示组件Message在Vuex中的调用实现 的相关文章

  • Spring登录时显示错误消息

    我正在使用 Spring security 来验证用户身份 我创建了一个自定义身份验证提供程序 现在我想知道如何从提供程序获取错误消息到我的表单中 这是我的自定义身份验证提供程序中的authenticate 方法 Override publ
  • R:删除向量的最后一个元素

    如何删除动物园系列的最后 100 个元素 我知道名称 元素 符号 但我无法减去整个部分 我喜欢用head因为这样更容易打字 其他方法可能执行得更快 但我很懒 而我的计算机却不是 x lt head x 100 gt head 1 102 1
  • 从 Vuex 访问提供给 Vue 的实例/服务 (Vue.js 3)

    背景 考虑以下 app js import API from utils API const api new API config app urls api endpoints token app provide api api 根据我在过
  • 如何将 HTML 代码添加到 JSF FacesMessage

    默认情况下 每个 JSFFacesMessage以单行形式呈现 我想添加 HTML 换行符 br 消息本身 以便消息显示整齐 我尝试过如下 message new FacesMessage test br test 然而 它被 JSF 转义
  • 调整控制台事件的大小

    所以我认为窗口调整大小事件将通过 winproc 进行 我可能是错误的 希望获得控制台调整大小事件的通知 我想在调整大小时最大化控制台缓冲区 一旦完成 基本上将其缩小回窗口大小 从而防止由于缓冲区小于窗口而导致溢出错误 不幸的是 答案是你无
  • 如何检查可见 DOM 中是否存在元素?

    如何在不使用getElementById method 我已经设置了一个现场演示 http jsbin com apawi5 3以供参考 我还将在这里打印代码
  • 在 vue 组件上提交表单时如何获取单选按钮的值?

    我有两个组件 我的第一个组件是这样的
  • Lua:“拖动”数组中的元素序列

    我正在尝试创建一个函数 将连续数量的元素 拖动 到数组中的新位置 并限制为数组的当前大小 其他项目应该围绕 拖动 的项目晃动 例如 如果我的数组有 7 个元素 并且我想拖动中间的三个 1 2 3 4 5 6 7 lt keys a b C
  • jsctypes - 使用 SHChangeNotifyRegister 处理 MEDIA/DRIVE 事件时出现问题

    我正在尝试在 Firefox 中使用 js ctypes 来接收 USB 媒体 驱动器通知 但我遇到了一些问题 我无法判断是否是因为我对 Win32 API 非常缺乏经验 或者对 js ctypes 很糟糕 或两者 我首先改编了我在亚历山大
  • 向 Windows 窗体消息循环发送或发布消息

    我有一个线程从命名管道读取消息 它是阻塞读取 这就是它在自己的线程中的原因 当该线程读取消息时 我希望它通知主线程中运行的 Windows 窗体消息循环消息已准备就绪 我怎样才能做到这一点 在win32中我会做一个PostMessage 但
  • 读取 WCF 消息正文两次 - “消息无法读取”

    我有一个 WCF 消息 Channels Message 我正在尝试使用 GetBody 提取正文 但是 我注意到我只能执行一次 如果我尝试再次使用 GetBody 我会收到 此消息无法支持该操作 因为它已被读取 知道如何重新阅读邮件正文吗
  • 两个列表中的公共元素

    我有两个ArrayList每个对象都有三个整数 我想找到一种方法来返回两个列表的共同元素 有人知道我该如何实现这一目标吗 Use Collection retainAll https docs oracle com en java java
  • 来自 VueX 和 NuxtJS 的持久状态

    我使用 vuex persistedstate 包 https github com robinvdvleuten vuex persistedstate https github com robinvdvleuten vuex persi
  • Octave/Matlab:向向量添加新元素

    有一个向量x我必须添加一个元素 newElem 有什么区别吗 x end 1 newElem and x x newElem x end 1 newElem更稳健一些 x x newElem 仅当x是行向量 如果它是列向量x x newEl
  • CSS,悬停一个元素,影响另一个元素

    当我将鼠标悬停在 li a 上时 我可以影响普通 CSS 中的另一个元素吗 因为我试图在悬停链接时将一个框作为背景元素滑入 与此网站导航完全相同 只是不是在激活时使用 而是通过悬停来使用 http www zindhai com http
  • 消息循环如何使用线程?

    我有点困惑 想知道我是否被误导了 在另一篇文章中 我被告知 只有当你显式创建新线程时才会创建它们 C 程序默认是单线程的 当我打开未在 ollydbg 中显式创建新线程的程序时 我多次注意到通常有 2 个线程在运行 我想了解消息循环如何在不
  • Vue.js 严格模式下不允许对一个属性进行多个定义

    再会 我们正在使用 Vuejs Vuex vue router 构建我们的应用程序https github com vuejs vue hackernews 2 0 https github com vuejs vue hackernews
  • 当我尝试从列表中删除元素时,如何忽略 ValueError?

    如果我打电话 如何忽略 不在列表中 错误消息a remove x when x不在列表中a 这是我的情况 gt gt gt a range 10 gt gt gt a 0 1 2 3 4 5 6 7 8 9 gt gt gt a remov
  • ElementTree 和 Element 有什么区别? (Python XML)

    from xml etree ElementTree import ElementTree Element SubElement dump elem Element 1 sub SubElement elem 2 tree ElementT
  • Vuex存储数据总是驻留在内存中?

    首先 我希望您能理解我蹩脚的英语 我想知道Vuex的存储数据是否总是驻留在内存中 让我用一个例子来解释一下 当进入页面A时 我们从服务器收到一个列表 并实现将其存储在商店中 这是否意味着当我进入页面A并移动到页面B时 A的列表将保留在内存中

随机推荐

  • ARM裸机第五部分-SDRAM和重定位relocate

    第一部分 章节目录 1 5 1 汇编写启动代码之关看门狗 1 5 2 汇编写启动代码之设置栈和调用C语言1 1 5 3 汇编写启动代码之设置栈和调用C语言2 1 5 4 汇编写启动代码之开iCache 1 5 5 重定位引入和链接脚本1 1
  • Java线程死锁的原因和条件

    一 死锁概念 所谓死锁 xff0c 是指多个进程在运行过程中因争夺资源而照成的一种僵局 当进程处于这种僵持状态时 xff0c 若无外力作用 xff0c 它们都将无法再向前推进 二 产生死锁的原因 xff08 1 xff09 竞争资源 当系统
  • Ubuntu 14.04无法连接ssh服务解决方法

    解决方法如下 xff1a 1 先试着开启SSH服务 在使用SSH之前 xff0c 可以先检查SSH服务有没有开启 使用命令 xff1a sudo ps e grep ssh 来查看 xff0c 如果返回的结果是 xxxx 00 00 00
  • 1.14.ARM裸机第十四部分-LCD显示器

    第一部分 章节目录 1 14 1 LCD简介 1 14 2 LCD的接口技术 1 14 3 LCD如何显示图像1 1 14 4 LCD如何显示图像2 1 14 5 LCD的六个主要时序参数1 1 14 6 LCD的六个主要时序参数2 1 1
  • LCD常用接口原理

    LCD常用接口原理 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打开链接 xubin 平台信息 内核 xff1a linux2 6 linux3 0 系统 xff1a android
  • 1.15.ARM裸机第十五部分-触摸屏TouchScreen

    第一部分 章节目录 1 15 1 输入类设备简介 1 15 2 电阻式触摸屏的原理 1 15 3 S5PV210的电阻触摸屏控制器 1 15 4 电容触摸屏的原理 1 15 5 ft5x06电容触摸IC简介 第二部分 章节介绍 1 15 1
  • MAC【Android studio】Gradle download:kotlin-compiler-embeddable-1.3.70.jar下载太慢

    采用策略去Maven仓库下载资源 更新到本地进行加载 1 进入仓库网址链接 https mvnrepository com 点击下载如图 2 配置下载jar文件到 gradle文件中 文件路径 Users 34 用户名 34 gradle
  • 线程安全是如何实现的?

    实现线程安全与代码编写有很大的关系 xff0c 但虚拟机提供的同步和锁机制也起到了至关重要的作用 互斥同步 互斥同步 xff08 Mutual Exclusion amp Synchronized xff09 是一种最常见也是最主要的并发正
  • 2022,音乐号自媒体起号涨粉保姆级攻略,这是个收获的季节。

    前言 最近遇到好多朋友说想做短视频自媒体 xff0c 但找了很多资料 xff0c 甚至报了学习班也没什么起色 xff0c 这不前天一个姐姐说他家姑娘想做抖音 xff0c 俩月了没啥粉丝也没啥播放量 xff0c 看到我的音乐号了 xff0c
  • 短视频消重去重九种方法,组合使用原创度更高,各平台轻松过原创

    想做好视频去重 xff0c 首先要了解视频查重的机制 网上流传的检查MD5其实已经过时了 xff0c 现在MD5已经是过去式 查重要对视频的方方面面进行检查 xff0c 包括但不限于 xff1a 视频的标题 xff0c 封面 xff0c 描
  • 不直播不露脸也能做短视频变现,想挣点生活费试试这些玩法

    大家好 xff0c 我是 64 我赢助手短视频运营 xff0c 最近一直有小伙伴问我 xff0c 做了好久的短视频一直不赚钱 xff0c 今天总结了一下 xff0c 做了90天短视频还没赚了试试这5种易变现的玩法 新手不直播不露脸也能做短视
  • 科普一下:拍抖音需要什么设备,可能用到的设备合集

    大家好 xff0c 我是 64 我赢助手短视频运营 xff0c 抖音是现在最火的短视频平台之一 xff0c 几乎每个人都在用它 xff0c 抖音视频的发展离不开手机 但你知道吗 xff1f 手机拍摄有很多方面的限制 xff0c 比如手持稳定
  • 短视频上热门技巧总结,这样做你也可以快速上热门。

    最近开始做短视频 xff0c 找了很多短视频运营创作技巧 xff0c 但能上热门的只有那么几个 xff0c 经过近一周的分析 xff0c 结合了我赢上短视频运营创作技巧 xff0c 得到了以下几个经典技巧合集 xff1a 学会一个就值了 首
  • 不要再被骗了,解密短视频里追剧看电影都能赚钱的坑。

    不要再被骗了 解密短视频里追剧看电影都能赚钱的坑 最近刷短视频刷到了好多抖音追剧看电影每天收几百 xff0c 还有截图 xff0c 还有怎么实操的视频 关键不是刷到一个两个 xff0c 是几十个还有越来越多的趋势 都说新入门实操 xff0c
  • 视频号的视频怎么下载到手机?不录屏也不找手机缓存,一键下载。

    你有没有看到有用的视频 xff0c 只收藏起来 xff0c 最后又找不到的时候 前天给朋友找了一个过年快速整理家具杂物的教程 xff0c 谁知道原作者第二天把视频给删掉了 xff0c 朋友说没有来得及看 昨天发给了朋友一个最新的教程 xff
  • 2023年做好自媒体的五个步骤,一步一个脚印稳妥找到结果。

    2023年做好自媒体的五个步骤 一步一个脚印稳妥找到结果 我不管你现在什么负债 破产 xff0c 还是迷茫焦虑 xff0c 通通别管了 xff0c 听话照做执行 看完我这篇内容 xff0c 2023年你还做不起来 xff0c 你就别打嘴炮
  • 2023视频号视频怎么下载到手机?最新验证过的可用方法汇总

    视频号视频怎么下载到手机 xff1f 今天又想下载一个视频号的视频 xff0c 找到收藏已久的视频号视频下载方法 xff0c 结果发现很多方法已经不能用 xff0c 一些能用的也开始收费了 只好重新寻找适合2023最新的几种方法解决视频号下
  • Android系统签名制作

    系统环境 Ubuntu18 04 首先要有对应系统的源码 源码目录build target product security将platform pk8和platform x509 pem copy出来放到一个目录下生成shared priv
  • 使用Cropper进行图片剪裁上传

    在项目中 xff0c 需要多上传的图片按照比例和尺寸进行裁剪 xff0c 这类场景在一些CMS系统中是比较常见的 xff0c 尤其是大部分的文章现在要适配PC Mobile两种平台 xff0c 文章的封面图等便需要按照尺寸做裁剪 xff0c
  • Element-UI消息提示组件Message在Vuex中的调用实现

    在最近的项目开发中 xff0c 前端部分使用 Vue 开发 xff0c 整个页面基于 Element UI 实现 由于是单页面多组件应用 xff0c 使用了 Vuex 做状态管理 为了页面交互的友好和风格的统一 xff0c 消息提醒使用 E