当前位置: 首页 > news >正文

Vue定义全局弹窗组件,使其在满足某种条件情况下弹出

文章目录

  • 1 新建一个js文件,
    • 1.1 引入`main.js`,使用的组件库,弹窗组件
    • 1.2 创建实例方法
    • 1.3 使用方法
    • 1.4 描述具体使用场景等

  • 做全局弹窗组件,使其在全局任意地方满足条件情况下展示出来
  • 虽然可以尝试用 mixin(混入)或者在每个文件内引入弹窗,并通过一个全局变量去达到这个效果,但如果项目文件量很大就显得繁琐并且不好维护
  • 创建Vue实例,挂载实例,添加实例Dom元素,以此为方法进行实现
  • 当然,这个弹窗组件可以是多个,因为可能存在很多情况去打开不同的弹窗

1 新建一个js文件,

1.1 引入main.js,使用的组件库,弹窗组件

import Vue from 'vue'
import dialog from './main.vue'
import '../main'
import ElementUI from '../element/index'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI, { size: 'default', zIndex: 3000 })

1.2 创建实例方法

import Vue from 'vue'
// 弹窗组件
import dialog from './main.vue'
import '../main'
import ElementUI from '../element/index'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI, { size: 'default', zIndex: 3000 })// 创建一个Vue实例对像并把弹窗放进去
const dialogBox = new Vue(dialog)
// 创建一个`div`标签并将实例挂载
dialogBox.$mount(document.createElement('div'))
// 将弹窗组件的Dom元素添加到body里
document.body.appendChild(dialogBox.$el)// 将弹窗挂载到原型链上方式使用
// Vue.prototype.$dialogBox= dialogBox// 引入形式使用
export default dialogBox

1.3 使用方法


// 原型链方式触发
$dialogBox.open()// 引入方式
import dialogBox from '@/components/index'
// 触发
dialogBox.open()
  • open()为弹窗组件的方法:
<template><div class=""><el-dialogtitle="提示":visible="dialogVisible"width="50%":show-close = 'false'>...</el-dialog></div>
</template><script>
import '../utils/flexible'
export default {name: '',props: {},components: {},data () {return {dialogVisible: false}},computed: {},watch: {},created () {},methods: {// 打开弹窗open () {this.dialogVisible = true},},mounted () {}
}
</script><style scoped lang="scss">
...
</style>

1.4 描述具体使用场景等

  • 例如在响应拦截器里,希望请求返回值满足某一个条件触发某一个弹窗去提示或者在前置路由守卫里被拦截到,仅仅一个message不够明显或者满足不了现在的功能需要打开个弹窗。
  • 当然,或许你想到了在App.vue里写这个弹窗,通过全局变量去控制,但有些时候这个弹窗的触发时机也是个问题(界面实例渲染之前),另外只能去用watch去监听这个全局变量去控制,有些时候希望这写弹窗组件更加灵活,让其在想要出现的时间节点去出现
  • 最后,项目的体积或许会随着时间的推移变的更繁琐,所以可以通过以上方法定义多个弹窗,在任意的位置或者时间节点出现,增加其可维护性与可扩展性
http://www.dtcms.com/a/471800.html

相关文章:

  • 开发文档规范
  • 合肥 电子商务 网站推广wordpress 循环两个交替
  • 12306网站哪个公司做的wordpress 3.9 编辑文章 固定链接 不能编辑
  • 网站方案设计做不做生意都要知道的网站
  • 频率在空间上的投射
  • 网站建设的相关知识c 网站开发简单实例
  • 【避坑】键值存储分解技术的局限性
  • 瑞丽企业网站建设各网站封面尺寸
  • 企业网站建站系统网站建设与网页设计课程
  • 毕设做网站怎么弄代码设计工商注册网站
  • 为什么进不了中国建设银行网站wordpress 插件经验
  • 嵌入式学习笔记6.PWM
  • 成都网站建设四川推来客网络手表网站 源码
  • 大型大型网站建设方案ppt大连网站建设动态
  • 网站的推广运营wordpress建设
  • 山东住房建设部网站在线p图网页
  • 哪里需要人做钓鱼网站维力安网站建设公司
  • 备案的网站必须打开吗seo是什么意思揉若湖南岚鸿专注
  • 湖南长信建设集团网站wordpress 怎么改中文字体
  • Kafka11-知识补充
  • 印象网站建设苏州制作网站的有几家
  • 火车票网站建设多少钱交通运输企业标准建设网站
  • 做公众号网站棋牌游戏软件开发公司
  • 钓鱼网站二维码制作软件正邦设计作品
  • 01-Python简介与环境搭建-导读
  • 青岛手机网站设计公司成都网站建设推来客网站系统报价
  • 深圳网站设计专业乐云seo即刻搜索收录网站
  • 遵义酷虎网站开发茶庄网站模板
  • 惠州网站seo排名优化贝贝网网站开发背景
  • 捷智算L40云主机租赁:即开即用、弹性伸缩,Docker部署零等待