在我正在开发的应用程序中,我们有很多模态,每个模态包含少量数据,通常是 2-3 个字段,有时是复选框、列表等。
问题是当组件关闭时如何从内部重置/销毁组件。这样做的原因有两个:
1) 不必清除每个模式上的各个数据字段。
2)当第二次打开模式时,道具上的观察者将再次触发(某些模式是“编辑”的,因此是预先填充的,我宁愿不管理这些数据)。
现在,如果模态是从外部关闭的,那么我可以更改组件上的键,这将解决问题,因为模态是从组件内部关闭的,那么我不知道是否可以做到这一点(那就太好了) 。你如何设置你的模态?什么是干净的架构?
示例代码:
<parentComp>
<customChildModal ref="$customChildModal"></customChildModal>
</parentComp>
// customChildModal
<v-dialog v-model="dialogState">
<v-text-field v-model="name">
...
</v-text-field>
<v-btn @click="dialogState = false">Cancel</v-btn>
<v-btn @click="saveSomething">Save</v-btn>
...
data(){
return {
dialogState: false,
name: ''
...
Run Code Online (Sandbox Code Playgroud)
现在,在某些情况下,我实际上有很多字段,每次关闭模式时我都需要清除它们。这需要涵盖单击“取消”的情况,以及用户在我支持的模式或 ESC 键之外单击的情况。