首页 > 其他分享 >Ant Design of Vue - 让 Message 组件支持手动点击关闭

Ant Design of Vue - 让 Message 组件支持手动点击关闭

时间:2023-02-06 17:12:10浏览次数:45  
标签:content Vue VNode Ant duration let 组件 Design Message

需求

让 antd 的 Message 组件能够手动触发关闭

From

to

思路

查看 antdv 文档 发现 Message 组件支持使用 VNode 作为显示内容,因此只需要使用 Vue 的 createElement 方法创建带有关闭样式的 VNode 即可。

实现

// 方法
const myMessageError = (content, duration, onClose) => {
    let _remove
    // 创建 VNode
    const h = app.$createElement
    let innerText = h('span', { style: { color: '#000000A6' } }, content);
    let innerIcon = h('a-icon', {
      style: { marginRight: '0px', marginLeft: '20px', color: '#ccc', cursor: 'pointer' },
      attrs: { type: 'close' },
      on: { click: () => _remove() }
    })
    let container = h('span', {}, [innerText, innerIcon])
    
    // 调用 Message 组件
     _remove = app.$message.error({
        content: container,
        duration: duration || 0,
        onClose: onClose,
     })
}

// 调用
myMessageError('This is an error message')

 

标签:content,Vue,VNode,Ant,duration,let,组件,Design,Message
From: https://www.cnblogs.com/panwudi/p/17095968.html

相关文章

  • vue+element ui实现页面平滑滚动,滚动监听(导航栏根据内容块滑动改变状态)
    一、效果图二、点击导航栏页面平滑滚动1.首先在子组件设置锚点如图中给与导航栏对应的四个div设置锚点id2.在子组件编写滚动方法监听路由的变化实现fetchData函数可以看到......
  • vscode部署Vue项目时遇到Expected linebreaks to be 'LF' but found 'CRLF'解决
    小白第一次部署vue大项目,在vscode上进行。项目是完善的,我需要在此基础上添加功能,首先得在本地部署。(遇到了一些小问题,仅用于个人踩坑记录~)1.cnpm与npm问题npmnmp(节点包管理......
  • 理解vuex -- vue的状态管理模式
    [b]vuex是什么?[/b]先引用vuex官网的话:[quote]Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以......
  • 为什么要使用computed而不是data获取vuex中的state
    最近在学习vuex时,照着官网最基本的Vuex记数应用示例敲的时候遇到了这样一个问题想实现的效果:[img]http://dl2.iteye.com/upload/attachment/0130......
  • vue3中使用pinia
    包管理器安装yarnaddpinia#或者使用npmnpminstallpinia在目录下创建store文件夹,并创建index.js文件import{createPinia}from'pinia'constpinia=cre......
  • vue3自动引入api
    1、问题:vue3使用setup的api,每次都要引入就很麻烦,有没有自动引入的方法,这样就不用那么麻烦2、方案:通过使用unplugin-auto-import/vite插件来自动引入vue的api3、实操:在vi......
  • vue3引入SvgIcon
    这里使用vite-plugin-svg-icons插件yarnaddvite-plugin-svg-icons-D#ornpmivite-plugin-svg-icons-D#orpnpminstallvite-plugin-svg-icons-D在vite.con......
  • vue3配置@文件系统路径
    1、问题:在项目中引用通常是相对路径,在复用代码模块的时候,没注意就很容易路径出错2、方案:通过vite设置resolve.alias来配置文件系统路径,在文件中就可以使用配置的路径,移动......
  • jmeter+ant生成测试报告
    一、安装ant1、ant下载地址:http://ant.apache.org/,解压到某个目录。2、添加环境变量:ANT_HOME,指向解压后的根目录,如D:\软件工具包\apache-ant-1.9.16-bin\apache-ant-1.9.......
  • 【Swiper】Swiper 滚动插件在 vue3 的使用,并手动设置切换
    效果图需求展示:右上角可左右滑动并控制遮罩层显示隐藏;每行显示4个,每次滑动4个安装npminstallSwiperyarnaddSwiperpnpmaddSwiper代码template<!--控制分......