如何实现QDialog隐藏时保留组件、显示时重建组件?
解决方案
要实现「弹窗隐藏时仅隐藏容器、打开时创建新组件实例」的效果,你可以这样修改代码:
<q-dialog :visible="filterModal" position="left" full-height maximized @hide="filterModal = false" > <object-mobile-filter v-if="filterModal" /> </q-dialog>
关键逻辑说明:
- 替换
v-model为:visible:q-dialog不会因filterModal为false被销毁,仅视觉上隐藏 - 给
<object-mobile-filter />添加v-if="filterModal":只有当filterModal为true时才创建新组件实例;filterModal变为false时组件销毁,但弹窗容器保留 @hide="filterModal = false"用于保留「点击弹窗外部自动关闭」的默认行为,确保关闭时同步更新状态并销毁组件
这样调整后,每次打开弹窗都会生成全新的<object-mobile-filter />实例,关闭时组件销毁但弹窗仅隐藏,完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Alexey
相关产品推荐
相关产品推荐

