基于原生JS来操作ElementUI组件总结

本文介绍了如何在Vue2项目中结合ElementUI的Message组件,使用原生JS进行DOM操作,包括创建警告框、添加和移除元素,以及为关闭按钮添加点击事件。重点在于利用组件的$el属性获取Vue实例并执行相关操作。

1.使用场景 

Vue2+ElementUI,这里使用ElementUI  的Message消息提示组件创建一个消息

type: "warning"    显示为警告框

message     信息文本内容

showClose   显示关闭按钮

duration:0     表示不会自动关闭,不加这个选项时,message会在一定时间内自行关闭

 // 弹出警告消息
        const messageInstance = Message({
          type: "warning",
          message: "警告信息",
          showClose: true,
          duration: 0,
        });

2.执行原生JS操作

2.1 在body里面添加一个容器  来执行dom操作

这一步,在body中创建了子节点  container,后续在container中,来操作我们的组件

const container = document.createElement("div");
       container.className = "container";
        document.body.appendChild(container);

2.2 将警告消息添加到容器中

这里通过messageInstance.$el来对message实例执行dom操作

       container.appendChild(messageInstance.$el);

        // 点击警告消息的关闭按钮时关闭警告消息和遮罩层
        const closeMessage = () => {
          //这里可以执行需要添加的操作 
          //1.可以按上面的appendChild方法操作dom
          //2.传递一下参数作为标识...
          container.removeChild(messageInstance.$el);
        };

2.3 为关闭按钮添加JS原生点击事件

注意这里的   ".el-message__closeBtn"  必须是我们使用的elementUI组件的类名

const closeBtn = messageInstance.$el.querySelector(
          ".el-message__closeBtn"
        );
        closeBtn.addEventListener("click", closeMessage);

通过这种方式  获取到组件的实例以及类名,进行相关的元素dom操作

2.4 补充说明

appendChild ,removeChild  原生JS中操作dom的方法  

appendChild()  向容器内添加子节点

removeChild()   在容器内移除相关子节点

3.总结

重点在于使用原生JS获取到相关元素,然后通过$el 来获取到相关组件的vue实例

通过这种方式也可以实现对ElementUI内部的一些其他组件完成相应的dom操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值