想实现一个全局的弹窗组件Notice,以插件的形式使用,先来分析一波:
- 首先得有一个Notice的组件配置,也就是Notice.vue文件。
- 想把Notice这个组件挂载到body下,可以用render函数实现。
- 全局引用,就可以使用啦!
首先,组件配置好写,就是一个框框组件配置,里面接受一些参数:弹框的主题title,弹框的展示的内容content,弹框的显示时间duration,再添加一些样式,就ok啦!
然后,重头来啦!使用render函数将这个组件挂载到body下面,可是vue的官网说,只能挂载一个呀,那怎么办呢(╥╯^╰╥)…,莫慌,只能挂载一个,那我就只挂载一个呗,然后把Notice组件通过render函数生成一个虚拟DOM,然后通过$mount方法将其生成真实的DOM,然后把这个DOMbody.appendChild()就可以啦!来走一波!
创建一个createNotice.js文件,内容如下:
import Vue from "vue";
const createNoticeByRender = function(Component, props) {
// 创建一个实例:利用createElement,返回一个虚拟dom
const vm = new Vue({
render(h) {
return h