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中的调用实现 的相关文章

  • Nuxt.js - API 调用的最佳场所

    我是 Vue js Nuxt 和所有前端东西的新手 我有一个关于 API 调用的问题 我不确定什么是正确的方法 这里的最佳实践是什么 我有一家商店 在该商店中 我有调用我的 API 并设置状态的操作 例如 async fetchArticl
  • R:删除向量的最后一个元素

    如何删除动物园系列的最后 100 个元素 我知道名称 元素 符号 但我无法减去整个部分 我喜欢用head因为这样更容易打字 其他方法可能执行得更快 但我很懒 而我的计算机却不是 x lt head x 100 gt head 1 102 1
  • Matlab减去矩阵元素

    所以我有这个矩阵 data 1 3 4 3 5 2 5 我需要通过减去元素来获取新数据 像这样 data2 data1 data3 data2 data4 data3 data5 data4 data6 data5 data7 data4
  • JQuery 选择框和循环帮助

    谢谢阅读 我对 jQuery 有点陌生 我正在尝试制作一个可以包含在我所有网站中的脚本来解决一个总是让我发疯的问题 问题 带有长选项的选择框在 Internet Explorer 中会被截断 例如 这些选择框 http discoverfi
  • 两个自定义(角度)元素之间的通信

    两个自定义 角度 元素之间的通信 假设有两个自定义元素 login button
  • 更改 withProgress() 生成的消息框的样式和位置

    The withProgress 函数可以生成一个消息框 指示闪亮的应用程序正在运行 但该消息位于浏览器的右上角 文字尺寸较小 这使得该消息不那么引人注目 所以我想知道有没有什么方法可以改变这个框的样式和位置 以便消息更具有表现力 这是我的
  • 如何覆盖 Struts 2 消息?

    这是我的 struts xml 的一部分
  • 过期的消息不会从 RabbitMQ 中删除

    我通过生产者向 RabbitMQ 发送一条普通消息 然后发送第二条消息expiration属性分配给一个值 然后使用rabbitmqctl list queues命令我监视消息的状态 我发现如果我先发送一条普通消息 然后发送一条消息expi
  • 如何重新加载 vue 组件?

    我知道解决方案是像这样更新道具数据 this selectedContinent 但我想使用另一种解决方案 在我阅读了一些参考资料后 解决方案是 this forceUpdate 我尝试了一下 但不起作用 演示和完整代码如下 https j
  • 如何使用 python smtplib 向多个收件人发送电子邮件?

    经过大量搜索后 我无法找到如何使用 smtplib sendmail 发送给多个收件人 问题是每次发送邮件时 邮件标头都会显示包含多个地址 但实际上只有第一个收件人会收到电子邮件 问题似乎在于email Message http docs
  • Symfony2 自定义表单错误消息

    你能帮我了解如何使用 Symfony2 自定义表单中的错误消息吗 我想更改 HTML 布局 添加 div 类等 阅读指南 它给出了一段代码 可以放入一个名为的文件中fields errors html twig但它没有告诉将该文件放在哪里以
  • 跳过第一个元素之后的所有其他元素[重复]

    这个问题在这里已经有答案了 我知道如何在 Java 中做到这一点 但我正在学习 Python 不知道如何做到这一点 我需要实现一个函数 该函数返回一个列表 其中包含列表中的所有其他元素 从第一个元素开始 到目前为止 我不确定如何从这里开始
  • Jquery Draggables:删除元素会更改其他删除元素的位置

    当放置 放置元素 通过从一个 DIV 拖动到另一个 DIV 然后删除放置的 DIV 中的一个元素时 其中一些元素会更改位置 这是一个测试场景 http jsfiddle net TcYHW 8 http jsfiddle net TcYHW
  • 如何将复选框绑定到Vuex存储?

    我有一个包含一些复选框的组件 我需要能够访问从 Vue 应用程序中的其他组件检查了哪些复选框 但我无法弄清楚 也无法在网上找到 如何将复选框正确连接到我的 Vuex 商店 将组件内的复选框连接到 Vuex 存储的正确方法是什么 以便它们的行
  • Octave/Matlab:向向量添加新元素

    有一个向量x我必须添加一个元素 newElem 有什么区别吗 x end 1 newElem and x x newElem x end 1 newElem更稳健一些 x x newElem 仅当x是行向量 如果它是列向量x x newEl
  • 使用 querySelector 通过 InnerHTML 选择元素

    有没有办法通过innerHTML选择一个元素而不使用循环 可以使用类似的东西来完成吗 document querySelector div innerHTML Sometext or document querySelector div t
  • 如何在 Nuxt.js 中设置 beforeResolve 导航防护

    有没有办法在 nuxt config js 中添加 beforeResolve 导航防护 我的 nuxt config js module exports router beforeResolve to from next if this
  • Vue - API 调用属于 Vuex 吗?

    我正在努力寻找在 vue 模块中理想的 API 调用位置的答案 我不是在构建 SPA 例如 我的 auth 块有几个用于登录 密码重置 帐户验证等的组件 每个块都使用 axios 进行 API 调用 Axios 已经提供了异步的 Promi
  • 对其他元素值的 XSD 限制

    是否可以在 XSD 文档中对其他元素值进行限制 例如 我有国家和州元素 如果国家 地区等于美国 那么我需要限制指定枚举的状态元素值 否则状态可以只是固定长度的字符串 当前 XSD 的示例 始终将状态限制为枚举
  • 有没有办法使用 Vue-Router 从动态 URL 中删除目录?

    我为一家保险经纪公司构建了一个 vue js Web 应用程序 其中每个代理人都有自己的网站 该网站是根据他们的个人资料生成的 这就是我的 vue router 索引文件中的链接的样子 path agents id name AgentSi

随机推荐

  • linux lsusb命令的安装及简单使用

    在 Linux 中我们可以使用 lsusb 来列出 USB 设备和它的属性 xff0c lsusb 会显示驱动和内部连接到你系统的设备 直接在控制台输入 lsusb 即可 安装 如果无法运行 lsusb xff0c 使用以下命令安装 xff
  • 算法总结

    在2020年的时候 xff0c 我第一次接触了C 43 43 编程 xff0c 那时的我是一位四年级的小学生 xff0c 觉得挺好玩的 xff0c 爸爸就给我推荐了一门课程 程序设计与算法 xff08 一 xff09 C语言程序设计 xff
  • ubuntu16.04安装docker

    ubuntu16 04安装docker 开始安装 开始安装 由于apt官方库里的docker版本可能比较旧 xff0c 所以先卸载可能存在的旧版本 xff1a span class token function sudo span span
  • docker命令中的/bin/bash

    docker run i t tomcat bin bash 中的 bin bash的作用是因为docker后台必须运行一个进程 xff0c 否则容器就会退出 xff0c 在这里表示启动容器后启动bash
  • 如何将文件从本机上传到docker容器

    1 如何从docker容器中下载文件 xff1a docker span class token function cp span container created path span class token operator lt sp
  • libjpeg.so.8: cannot open shared object file: No such file or directory.

    在docker容器里执行carla的PythonAPI报错 xff1a libjpeg so 8 cannot span class token function open span shared object file No such s
  • Docker容器图形界面显示的配置方法

    参考博客 0 环境说明 Ubuntu 16 04 docker 19 03 12 因为要在docker中用pygame xff0c 要用到显示器 xff0c 这个时候需要解决这个Docker 可视化 的问题 原理简介 原理上可以把docke
  • 在docker中运行carla

    参考carla文档 ubuntu18 04 carla0 9 9 docker19 03 12 Docker Installation Docker CE For our tests we used the Docker CE versio
  • Pyglet设置窗口标题

    Pyglet教程 Caption The window s caption appears in its title bar and task bar icon on Windows and some Linux window manage
  • Linux 解决远程连接的 “Gtk-WARNING **: cannot open display;”

    转发 ssh Y username 64 ip 使用 Y 参数实际上是授权了 X11 转发 xff0c 这样就可以看到来自远端的 gtk 图形窗口了 span class token function man span span class
  • android jni调试 - 堆栈分析

    一 环境 xff1a windows rk3399 android 7 1 二 奔溃信息 pid 13544 tid 13639 name no localmeeting gt gt gt com sino localmeeting lt
  • CFileDialog的使用[转]

    由于项目需要 xff0c 查阅了一下CFileDialog类 xff0c 以满足程序自动读取配置文件的需求 xff0c 现在小小记录一下 xff01 CFileDialog类封装了Windows常用的文件对话框 xff0c 提供个一种简单的
  • 记录一下c/c++的几种计时方式

    include lt iostream gt include lt string gt include lt chrono gt void Run for int i 61 0 i lt 10000000 i 43 43 void time
  • [转载] 强化学习开源框架整理

    转载 https zhuanlan zhihu com p 582396276 本篇主要是介绍了不同的 RL 开源工作 xff0c 包括环境开源工作和算法开源工作 xff0c 同时关注这些开源工作对于多机多卡并行分布式训练的支持 算法框架
  • tf模型在C++部署

    tensorflow训练好的模型使用ONNX Runtime在C 43 43 部署 tf模型转onnx使用tf2onnx 在前面的文章有讲到c 43 43 调用tf keras的模型 环境 ubuntu20 04cuda 11 6cudnn
  • Google Breakpad 之一,跨平台crash 处理上报系统简介

    C C 43 43 程序最棘手的时候就是一个字 挂 xff0c 总是经常和不经常的挂掉 xff0c 尤其是那些线上的不经常挂的情况 xff0c 光看日志定位问题真的很难 为解决C挂挂的问题 xff0c 有必要提供一个跨平台的crash处理系
  • ubuntu14.04更换内核为3.14

    查看ubuntu14 04支持的内核版本的命令 xff1a atp cache showpkg linux headers 现在Ubuntu14 04安装完成后为4 4 0的内核 xff0c 若要降低内核版本 xff0c 操作方法如下 xf
  • 回首2013,这一年的坚持

    2013年 xff0c 眨眼间已悄悄流逝 这一年回味起来 xff0c 总是那么美 xff0c 充满快乐 xff0c 令人陶醉 一 生活篇 2013年对我来说 xff0c 是快乐的一年 在这一年里 xff0c 遇见了很多美丽的景色 xff0c
  • 使用Cropper进行图片剪裁上传

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

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