我是靠谱客的博主 要减肥老师,最近开发中收集的这篇文章主要介绍【框架】弹出框【框架】弹出框,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

【框架】弹出框

在这里插入图片描述

需求

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的方式获取到实例对象,也可以放在参数中传入。

最后

以上就是要减肥老师为你收集整理的【框架】弹出框【框架】弹出框的全部内容,希望文章能够帮你解决【框架】弹出框【框架】弹出框所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(29)

评论列表共有 0 条评论

立即
投稿
返回
顶部