关于Vue基本逻辑的问题:父母和孩子之间的沟通,反之亦然



我需要一些关于组件之间通信的Vue (version 2)基本逻辑概念的帮助,我似乎无法掌握…

我有一个仪表板(dashboard .vue),从中我打开一个弹出:<FormXPopup v-show="isVisible">

FormXPopup内部。我有一个带有内容槽的弹出组件<Popup>

Popup有一个关闭按钮,它发出'close'来切换Dashboard.vue中的isVisible布尔值。

在弹出的内容槽我已经放置了一个表单组件:<FormX>

FormX具有表单验证。在Dashboard.vue.

中还有一个取消按钮,它也会发出'close'。现在我想在关闭弹出窗口时清除所有验证。

我可以很容易地清除它,然后发出'close'当我点击取消按钮从FormX.vue。

然而,当我点击关闭按钮驻留在<Popup>我不知道如何清除的形式。

另外,Popup正在被重用,所以我正在寻找一个灵活的解决方案。

那么,当我关闭弹出窗口(父窗口)时,如何清除窗体(子窗口)呢?

Vue.js中v-showv-if是有区别的

v-show

当你使用v-show时,Vue将渲染FormXPopup并应用display: none;直到isVisible === true

这在加载页面时花费更多,但切换变量在性能上是便宜的。这应该在变量变化很大时使用。

v

当你使用v-if时,Vue将不会渲染组件,直到条件为真。一旦组件被渲染,如果条件返回false,则该组件将被销毁。因此,您不需要手动清除表单。

此解决方案在呈现初始页面时花费较少,但在变量更改时花费更多时间。

知道了这一点,你应该在这种情况下使用v-if,因为isVisible不会改变那么多,而且因为弹出窗口有一个需要每次重新初始化的状态。

v-show只是样式调整逻辑。

v-show:false是在这个标签的样式中添加display: none

相关内容

  • 没有找到相关文章

最新更新