版本
@varo-ui/weapp@2.0.0、@varo/primitives-weapp(当前 main)。
问题
文档和 Registry 把 Dialog 暴露为 VDialogRoot / VDialogTrigger / VDialogOverlay / VDialogContent / VDialogClose,并声称支持 weapp。weapp 实际实现是 defineComponent + h(),从 vue 导入生命周期和 document 键盘事件。
wevu 页面是原生 SFC + 小程序节点。业务按文档写:
<VDialogRoot v-model:open="open">
<VDialogOverlay />
<VDialogContent>协议</VDialogContent>
</VDialogRoot>
在微信开发者工具里不能得到系统确认框那种居中双按钮 Dialog,也无法作为可安装的 wevu SFC 使用。Registry 只复制同一个 dialog.ts 到 h5 和 weapp,weapp 没有独立 weapp-vite.vue parts。
对比 Overlay:weapp 目标复制的是 v-overlay.vue(wevu SFC)。Dialog 没有对等产物。
复现
- 在 wevu + weapp-vite 项目安装
components/dialog。
- 登录页未勾选协议时打开确认层,结构对齐猫箱系统 Dialog:标题、说明、不同意 / 同意。
- 用微信开发者工具打开该页。
预期
weapp 目标应提供 wevu SFC parts(或等价原生节点实现):
VDialogRoot 持有 open 状态
VDialogOverlay 使用 view 遮罩
VDialogContent 居中白底面板
VDialogClose 关闭动作
不要依赖 document.addEventListener('keydown')。原生微信运行时没有这个能力,文档自己也写了。
实际
@varo/primitives-weapp/src/dialog/index.ts 从 vue 导入 defineComponent / h / onMounted
onMounted 里监听 document 的 Escape
- Registry
dialog.ts h5 / weapp 共用一份 render-function 包装
- 业务只能改用手写 overlay,或退回
wx.showModal
建议
给 weapp 增加独立 SFC parts,Registry 按 Overlay 的方式复制 v-dialog-*.vue。保留 headless useDialogRoot 状态机。不要在 weapp 适配器里碰 document。
版本
@varo-ui/weapp@2.0.0、@varo/primitives-weapp(当前main)。问题
文档和 Registry 把 Dialog 暴露为
VDialogRoot/VDialogTrigger/VDialogOverlay/VDialogContent/VDialogClose,并声称支持 weapp。weapp 实际实现是defineComponent+h(),从vue导入生命周期和document键盘事件。wevu 页面是原生 SFC + 小程序节点。业务按文档写:
在微信开发者工具里不能得到系统确认框那种居中双按钮 Dialog,也无法作为可安装的 wevu SFC 使用。Registry 只复制同一个
dialog.ts到 h5 和 weapp,weapp 没有独立weapp-vite.vueparts。对比 Overlay:weapp 目标复制的是
v-overlay.vue(wevu SFC)。Dialog 没有对等产物。复现
components/dialog。预期
weapp 目标应提供 wevu SFC parts(或等价原生节点实现):
VDialogRoot持有 open 状态VDialogOverlay使用view遮罩VDialogContent居中白底面板VDialogClose关闭动作不要依赖
document.addEventListener('keydown')。原生微信运行时没有这个能力,文档自己也写了。实际
@varo/primitives-weapp/src/dialog/index.ts从vue导入defineComponent/h/onMountedonMounted里监听document的Escapedialog.tsh5 / weapp 共用一份 render-function 包装wx.showModal建议
给 weapp 增加独立 SFC parts,Registry 按 Overlay 的方式复制
v-dialog-*.vue。保留 headlessuseDialogRoot状态机。不要在 weapp 适配器里碰document。