Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(Popup): add destroy-on-close prop to popup #9448

Closed

Conversation

LanjianNUll
Copy link

feat(Popup): add destroy-on-close prop to popup

Popup添加新的prop,使得 关闭时销毁 Popup 中的元素

利用key的特性来控制组件销毁

@chenjiahan
Copy link
Member

为什么要通过这种方式销毁呢?使用场景是什么

@LanjianNUll
Copy link
Author

为什么要通过这种方式销毁呢?使用场景是什么

嗯, 场景类似于popup里一个组件需要用的created 或者destoryed 生命周期方法触发某些业务逻辑(比如异步请求等)

不知道是否描述清晰

@chenjiahan
Copy link
Member

直接在 Popup 组件上添加 v-if 不行吗

@LanjianNUll
Copy link
Author

LanjianNUll commented Sep 12, 2021

直接在 Popup 组件上添加 v-if 不行吗

en, 是的, 有两个我自认为的原因
1, 用if 和 v-model 两个来控制Popup的显隐 总觉得怪怪的
2, 用了if的话,v-show 的动画效果就显示不了了

用key的话, 感觉还个还不是很完美方案, 因为key 切换一次就会触发一次生命周期方法,即时是在隐藏Popup的时候,
希望有个好的解决方法 或者 从另一个角度 或者 这个场景不是很普遍。

@Zclhlmgqzc
Copy link

Zclhlmgqzc commented Sep 12, 2021

v-if v-show 同时用 v-if 默认 true 然后用 v-show 控制 销毁再用 v-if

@LanjianNUll
Copy link
Author

想了想, 在popup包裹的组件中加个v-if 来控制,还是最好的

@SepVeneto
Copy link

如果在被包裹组件上加v-if,在关闭的时候就会出现动画还没结束,但是内部的组件已经被销毁的情况。
比如我有一个表单需要在popup中填写,在关闭popup时候,表单立刻就被销毁了,感觉用户体验上不太好。

@chenjiahan
Copy link
Member

可以监听 onClosed 事件,然后再销毁

@SepVeneto
Copy link

可以是可以,但是需要再额外管理一个变量

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants