概述
【框架】弹出框
需求
1.调用页面不用手动引用模板文件
2.展示状态可控
3.内容可选和自定义
原理
1.vue的构造器vue.extend(option)
2.vue的jsx写法(推荐)
3.Promise(可选)
代码示例
import vue from 'vue'
import "./message.less" //弹出框的样式文件
//创建构造器
const Info = vue.extend({
render() {
return (this.show ? <div class="Message">
<SlotContent /> //因为这里是作为构造器的内容,这里的插槽不能用{this.$slots.SlotContent}替代
</div> : null);
},
})
//将生成函数挂载到vue的原型上,方便全局调用
vue.prototype.$info =(render)=>{ // @render 自定义渲染
return new Promise(resolve=>{//使用promise方便控制弹出框的状态
const InfoDom = new Info({
el: document.createElement('div'),
components: {
SlotContent: { render }
},
data() {
return {
show: true
}
},
methods: {
Close() {
this.show = false;
}
}
})
document.body.appendChild(InfoDom.$el)//将生成的dom添加到页面
resolve(InfoDom) //将生成的弹出框对象返回给调用
})
}
示例说明
示例为js文件,到vue项目中main.js引用后,可用如下的方式在此项目的任何地方调用
vm.$info(()=>{
return <div>hello world!</div>
})
因为返回的是一个pormise对象,可获取到生成的弹出框对象实例,以此来控制弹出框的状态
额外说明
示例中的参数是vue的render函数,在实际使用中可以根据需要配合模板配置参数来增加耦合度,如果不喜欢用promise的方式获取到实例对象,也可以放在参数中传入。
最后
以上就是要减肥老师为你收集整理的【框架】弹出框【框架】弹出框的全部内容,希望文章能够帮你解决【框架】弹出框【框架】弹出框所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复