Vue实现custom-message
前言
之前在项目中使用vue框架中的element-UI时,使用element-UI的弹窗非常的nice,但在最近的项目中,要求项目体积小,且高度自定义,所以不能把element-UI的message的组件引进来再改样式,于是决定自己封装一个,来满足需求。
基本原理
使用Vue.extend(options)创建一个Vue构造器,再将构造器实例化,挂载到body中
...
const MessageBox = Vue.extend(MessageMain);
...
const Message = function (options = {
}) {
...
let instance = new MessageBox({
data: options
});
//在文档之外渲染并且随后挂载
instance.vm = instance.$mount();
document.body.appendChild(instance.vm.$el);
...
}
通过构造器,将组件挂载到body上
实现步骤
- 创建messageMain.vue组件
<template>
<transition name="taataa">
<div :class="['plugins-message-box',type]" v-if="visible">
<div :class="['message-icon','iconfont',iconClass]"></div>
<div class="message-container">{
{
message}}</div>
</div>
</transition>
</template>
<