vue+elementUI $message_element-ui的this.$message-程序员宅基地

技术标签: 前端环境  vue elementUI $message  

element-ui,$message显示倒计时信息

  • element-ui,$message显示倒计时信息

    element-ui 提供的message组件,文字是写死的,没有提供动态变化的方法。 但是作为一个vue组件,他的message属性是双向绑定的。

    下面是实现倒计时显示的例子

    var a = this.$message({
        showClose: false,
        message: '你已经被管理员禁用,5s后将自动退出',
        type: "error",
        duration:5000
    });
    
    //倒计时函数
    function coutTime(index){
        setTimeout(function() {
            if(index == 0){
                //5s结束后的操作
            }else{
                a.message = "你已经被管理员禁用,"+index+"s后将自动退出" ;
                coutTime(--index) ;
            }
        }, 1000);
    };
    coutTime(4) ;

<2>

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

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

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

为了页面交互的友好和风格的统一,消息提醒使用 Element-UI 的 Message消息提示, 不使用 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>

组件内的属性 msgCount 是 computed 属性,仅仅是为了跟踪 state 中 msg.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","删除成功!");

<3>

vue element-ui的$notify注意点

2018年02月22日 15:40:58 chiuwingyan 阅读数:5654

我的初衷是把element-ui的$notify通知封装成一个组件,登录成功后调用获取低库存接口,如果获取接口的列表当中库存大于0,则显示这个通知,并且在文本当中提供点击事件。

因此,首先想到的就是使用dangerouslyUseHTMLString属性,可以插入html字符串

  1. export default {

  2. methods: {

  3. open12() {

  4. this.$notify({

  5. title: 'HTML 片段',

  6. dangerouslyUseHTMLString: true,

  7. message: '<strong>这是 <i id="show">HTML</i> 片段</strong>'

  8. });

  9. }

  10. }

  11. }

但是,message里面的html字符串其实是脱离了vue,例如不能用@click方法绑定事件,因此,应该用js的操作dom来绑定。

首先,我想到的是在该组件的mounted方法里面获取

document.querySelector('#show');

但是这样获取到的是null,为什么呢?

mounted的时候是该组件模板里面的dom挂载完毕,然而我这个组件里面并没有模板,只在方法里使用了this.$notify,挂载完后这个notify并不在app里面,

role=“alert”就是该通知框,因此我们不能把它当做普通组件操作。而且,它的挂载时机有可能在该组件的mounted之后,就是mouted方法时只是该组件挂载了,但是里面的这个motify可能还没有,因此就是null。

如果要在里面添加js方法如绑定事件,应该要在html里面添加监听,但是要掌握好时机。

notify应该是偏向于文本展示的通知类,我这里使用notify可能就会有点不妥。

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41646716/article/details/85163812

智能推荐

pytorch CAM得到热力图_net._modules.get(finalconv_name)-程序员宅基地

文章浏览阅读3.8k次,点赞12次,收藏51次。pytorch CAM得到热力图用法根据网上的代码改成自己的模型的,并且改成了对整个文件夹的图片挨个生成直接复制代码就行了,不用去下载包修改main函数里的东西就行了,注释了下面这图是我自己的,看上去这个热力图跟我预想的网络重点不一样,专注背景去了的代码# simple implementation of CAM in PyTorch for the networks such as ResNet, DenseNet, SqueezeNet, Inceptionimport ioimpo_net._modules.get(finalconv_name)

ROS 将kitti图像的目标检测2D检测框画出来,并用rviz显示。_cv2.imread读取的kitti的图片没有shape-程序员宅基地

文章浏览阅读1.6k次。ROS 将kitti图像的目标检测2D检测框画出来,并用rviz显示,效果如下:在,我们已经讲kitti的图像进行发布,并用rviz显示,所以本文只将2D的检测框画出来即可。_cv2.imread读取的kitti的图片没有shape

Notes Twenty one days-渗透攻击-红队-权限提升_dirb too many errors-程序员宅基地

文章浏览阅读1.5w次,点赞4次,收藏41次。**Notes Twentieth Day-渗透攻击-红队-权限提升(dayu)**作者:大余时间:2020-10-5请注意:对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。我必须再重申一遍:务必不要做未授权测试!不要未经授权在真实网络环境中复现任何本书中描述的攻击。即使是出于好奇而不是恶意,你仍然会因未授权测试行为而陷入很多麻烦。为了个人能更_dirb too many errors

C++ 特殊类设计-程序员宅基地

文章浏览阅读410次,点赞31次,收藏25次。在C++98中,将该类的构造函数设置为私有,因为如果派生类继承了基类的私有成员,就意味着必须调用基类的构造函数对基类的私有成员初始化,但是基类的构造函数设置为私有,就意味派生类无法访问到基类的构造函数,所以该类被继承后也就无法创建出对象.一个程序中,多个单例,并且有先后创建初始化顺序要求时.饿汉模式无法控制,因为静态成员谁先初始化谁后初始化不能确定.比如,程序两个单例类A和B,假设要求A先创建初始化,B再创建初始化.所以,针对于单例对象,我们常用了内嵌类的形式,让程序结束时符合相关条件自动销毁.

小波分解和合成的simulink仿真-程序员宅基地

文章浏览阅读1.2k次,点赞2次,收藏5次。采用5-3提升小波的方法小波分解数据拆分预测更新数据输出使能电路电路共有两个输入三个输出,in1是数据输入,in2是输入数据有效信号,out1是更新后的低频信号,out2是预测的高频信号,out3是输出有效信号。电路需要考虑数据的边界延拓,我直接延拓为0,简单。有其他延拓方法如对称延拓和周期延拓,没弄,只是简单的把一层分解和合成电路给搭了出来,延拓的方..._simulink小波包 csdn

(算法)稳定婚姻匹配-程序员宅基地

文章浏览阅读71次。题目:婚介所登记了N位男孩和N位女孩,每个男孩都对N个女孩的喜欢程度做了排序,每个女孩都对N个男孩的喜欢程度做了排序,你作为月老,能否给出稳定的牵手方案?稳定的定义:如果男孩i和女孩a牵手,但男孩i对女孩b更喜欢,而女孩b的男朋友j拼不过男孩i,则没有力量阻碍男孩i和女孩b的私奔,这即是不稳定的。思路: 1962 年,美国数学家 David Gale 和 Lloyd Shapl..._wm[i][woman[i][j]]=j

随便推点

上传图片到服务器,服务器保存并且接收到了,但是必须刷新文件夹或者重新部署文件才能在客户端显示图片_struts2上传图片后刷新才行-程序员宅基地

文章浏览阅读8.6k次,点赞4次,收藏11次。今天遇到了很大一个BUG 研究了半天终于解决!当你从客户端上传图片到服务器时候,服务器保存了并且接收到了所有数据,数据库也存了,但是必须刷新文件夹或者重新部署文件才能在客户端显示刚才的图片 以下是解决办法 注意!!!这句话才是获得webRoot下的upload文件夹 ServletActionContext.getServletContext().getRealPath(_struts2上传图片后刷新才行

LeetCode刷题总结 - 面试经典 150 题 -持续更新-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏22次。LeetCode刷题总结 - 面试经典 150 题 - 持续更新其他系列数组 / 字符串88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II169. 多数元素189. 轮转数组121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II55. 跳跃游戏274. H 指数380. O(1) 时间插入、删除和获取随机元素238. 除自身以外数组的乘积739. 每日温度42. 接雨水双指针125. 验证回文串392. 判断子序列167. 两数之和 II - _leetcode刷题

PTA 7-248 递归函数返回两个整数的最大公约数_编写函数,函数的形式参数为两个正整数a和b,函数返回a与b的最大公约数,要求用递归-程序员宅基地

文章浏览阅读1.3k次。PTA 7-248 递归函数返回两个整数的最大公约数_编写函数,函数的形式参数为两个正整数a和b,函数返回a与b的最大公约数,要求用递归

使用parted分区并用GPT方式分区_mengpt使用-程序员宅基地

文章浏览阅读4.4k次。使用parted分区,删除所有分区,并重新使用parted分区分区方式使用gpt_mengpt使用

Oauth2 访问oauth/authorize/**出现 403_oauth2 client_credentials 403-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏3次。Oauth2 访问oauth/authorize/**出现 403_oauth2 client_credentials 403

STM32-串口通信发送+接收信息(标准库+代码)_stm32串口传输代码-程序员宅基地

文章浏览阅读586次,点赞12次,收藏8次。通用异步收发器UART(Universal Asynchronous Receiver/Transmitter),是一种串行、异步、全双工的通信协议。通过发送线(TX)、接收线(RX)、GND就可以进行全双工通信。需要确定好通信双方的波特率(bps指每秒传输的码元数量)串口通信是一位一位地传输,每传输一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平),后面由7位数据位组成,接着是1位校验位,最后是1位停止位。_stm32串口传输代码

推荐文章

热门文章

相关标签