Skip to content

快速开始 ​

安装 ​

bash
pnpm add vue-mount-plugin
bash
npm install vue-mount-plugin
bash
yarn add vue-mount-plugin

快速示例 ​

Vue 3 ​

vue
<script setup>
import { mount } from 'vue-mount-plugin'
import Modal from './Modal.vue'

function showModal() {
  mount(Modal, {
    props: { title: 'Hello World' }
  })
}
</script>

<template>
  <button @click="showModal">显示弹窗</button>
</template>

Vue 2.7 ​

vue
<script>
import { mount } from 'vue-mount-plugin'
import Modal from './Modal.vue'

export default {
  methods: {
    showModal() {
      mount(Modal, {
        props: { title: 'Hello World' },
        parent: this // Vue 2 中用于上下文继承
      })
    }
  }
}
</script>

<template>
  <button @click="showModal">显示弹窗</button>
</template>

Vue 2.6 及更早版本 ​

首先,安装 @vue/composition-api:

bash
npm install @vue/composition-api

然后使用与 Vue 2.7 相同的 API。

浏览器中使用 ​

html
<head>
  <script src="//unpkg.com/vue@3"></script>
  <script src="//unpkg.com/vue-mount-plugin@4/dist/index.iife.min.js"></script>
</head>

<script>
  const instance = VueMount.mount(MyComponent, {
    props: { title: 'Hello' }
  })
</script>

核心概念 ​

mount() 与 createMount() ​

  • mount():创建实例并立即显示(最常用)
  • createMount():仅创建实例,稍后显示(手动控制)
typescript
// 自动显示
const instance = mount(Modal, options)

// 手动控制
const instance = createMount(Modal, options)
instance.show()    // 需要时显示
instance.hide()    // 隐藏但保留实例
instance.unmount() // 完全销毁

实例生命周期 ​

createMount() → show() → mounted
                        ↓
                    hide() → hidden(实例保留)
                        ↓
                    show() → 再次 mounted
                        ↓
                    unmount() → destroyed

下一步 ​

基于 MIT 许可发布