⚡
命令式 API
在事件回调、状态仓库、路由守卫中调用 summon(Component, props),甚至在组件之外。
<script setup lang="ts">
import { useSummoned } from 'vue-summon'
const { resolve } = useSummoned<boolean>()
</script>
<template>
<div class="overlay">
<div class="dialog">
<p>要删除这个文件吗?</p>
<button @click="resolve(false)">取消</button>
<button @click="resolve(true)">删除</button>
</div>
</div>
</template>import { summon } from 'vue-summon'
import ConfirmDialog from './ConfirmDialog.vue'
const confirmed = await summon(ConfirmDialog)
if (confirmed) {
await deleteFile()
}这就是全部心智模型:像调用函数一样召唤组件,像等待 Promise 一样等待答案。 不需要 v-model:visible,不需要管理 teleport 目标,也不需要跨三层父组件传递事件。