如何支持 element-plus 全局配置组件
Closed this issue · 4 comments
153264 commented
hairyf commented
由于 element-plus
是使用组件来进行挂载注入更多应用信息,而 @overlays/vue
只能继承当前 createApp
中的全局属性,所以你需要在 UnifiedOverlay
组件中使用 el-config-provider
<!-- overlay.vue -->
<script setup>
const { visible, resolve, reject } = useOverlay({/* ... */})
</script>
<template>
<el-config-provider>
<el-dialog>...</el-dialog>
</el-config-provider>
</template>
目前你可以将 el-config-provider
封装成一个通用的注入层,并提供给 App.vue
和 overlays
组件使用。
<!-- mount-privder.vue -->
<template>
<el-config-provider ...>
<slot />
</el-config-provider>
</template>
153264 commented
你的意思是这样吗?
<!-- mount-privder.vue -->
<template>
<el-config-provider ...>
<slot />
</el-config-provider>
</template>
<!-- App.vue -->
<template>
<mount-privder>
<!-- code ... -->
</mount-privder>
</template>
<!-- overlays.vue 弹出层组件 -->
<template>
<mount-privder>
<el-dialog>
<!-- code... -->
</el-dialog>
</mount-privder>
</template>
hairyf commented
是的,你也可以使用 useInjectHolder API,通过创建持有者,塞入到当前的 vnode 当中,它可以在注入层组件内继承属性。
153264 commented
这种不太适合我,我是使用createOverlay
统一导出js,页面调用弹出。