Kros的博客 Kros的博客
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云

Kros

凡心所向,素履以往,生如逆旅,一苇以航
首页
  • CSS
  • 工具
  • Vue
  • js
  • Vue3
  • 算法
  • 折腾笔记
一言
  • 分类
  • 标签
  • 归档
码云
  • CSS

  • JavaScript

  • 工具

  • Vue

  • antdv踩坑记录

  • Vue3

    • vue3 setup语法糖
    • vue3实现v-model
    • vue3组件通信
    • vue3使用pinia及pinia持久化
    • vue3使用$nextTick
    • Proxy的实际应用场景
    • ref和reactive的实现原理
    • vue3生命周期
    • 在vue文件外使用store
    • vue3中的编译器宏
    • vue3 ts中拼接本地图片地址
    • 数值滚动实现
    • setup语法糖下自定义组件name
    • vue-router4配置动态路由问题No match found for location with path
    • vue3挂载全局弹窗
    • vue3+vite配置环境变量问题
    • Vue3监听createApp创建的子组件事件
    • vue3源码学习——vue3核心模块
  • 前端
  • Vue3
kros
2023-02-16

vue3挂载全局弹窗

vue2中使用$mount和extend实时挂载组件到全局,具体可以参考 使用$mount和extend扩展vue

在vue3中提供了一个更为方便的函数createApp,具体实现如下:

// 引入createApp函数和App类型
import { createApp, type App } from 'vue'
// 引入popup组件
import Popup from './popup.vue'

let popupInstance:any = null

// install方法,可被app.use()使用
export default function install (App: App) {
  initialize()
  // 挂载到全局变量上
  App.config.globalProperties.$popup = popupOpen
}

// 手动调用显示
export function popupOpen(params: any) {
  if (popupInstance === null) {
    initialize()
  }
  // 赋值参数
  // popupInstance.....
  
  
  popupInstance.show = true
}

function initialize() {
  // 创建Popup实例
  const instance = createApp(Popup)
  // 挂载到dom上
  const box = document.createElement('div')
  document.body.appendChild(box)
  popupInstance = instance.mount(box)
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
上次更新: 2025/09/05, 8:09:00
vue-router4配置动态路由问题No match found for location with path
vue3+vite配置环境变量问题

← vue-router4配置动态路由问题No match found for location with path vue3+vite配置环境变量问题→

最近更新
01
Find the next perfect square
09-05
02
Regex validate PIN code
09-05
03
Find the odd int
09-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 kros king
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
icon-heart-o icon-heart icon-infinity icon-pause icon-play link next prev