Vue中如何存储多个children的值并在父组件中执行一个函数

Posted

技术标签:

【中文标题】Vue中如何存储多个children的值并在父组件中执行一个函数【英文标题】:How to store the values of multiple children and execute a function in the parent component in Vue 【发布时间】:2021-12-21 10:02:07 【问题描述】:

我有一个名为 Messaging Tool 的组件

这些都是消息传递工具中的所有子组件。

这是它在视觉上的样子:

这 3 个通道打开了它们自己的表单,这些表单将用于通过适当的通道发送消息。 他们是那些:

单击“保存文本”复选框后,我需要以 CSV 格式导出字段。 单击此发送消息后,将出现确认模式。

我必须保存所有这些字段属性,并在父组件上执行 CSV 保存或向 API 发送消息。

我的问题是我该怎么做?如何保存子组件值? 显然,我可以保存复选框值,因为它们位于主父组件中,但是,当执行父按钮中的复选框或按钮时,如何将所有这些属性保存在子组件中?

【问题讨论】:

【参考方案1】:

在 Vue 2 中,您可以将 v-model 添加到您的所有 <child>。这样,您可以在父级中为每个子级设置一个变量,子级可以使用该变量将其状态同步到父级:

https://vuejs.org/v2/guide/components.html#Using-v-model-on-Components

请注意,Vue 2 仅支持 v-model 用于单个值。如果孩子需要将多个值同步到父母,您可以改用.sync 修饰符:

https://vuejs.org/v2/guide/components-custom-events.html#sync-Modifier

如果你使用Vue 3,你可以使用多个v-model

https://v3.vuejs.org/guide/component-custom-events.html#v-model-arguments

【讨论】:

非常感谢佩佩。你为我节省了很多时间和精力。

以上是关于Vue中如何存储多个children的值并在父组件中执行一个函数的主要内容,如果未能解决你的问题,请参考以下文章

如何分解数据库中的值并在选择查询中使用它?

如何比较两个for循环的值并在django模板中使用if语句?

vue $emit子组件传出多个参数,如何在父组件中在接收所有参数的同时添加自定义参数

Vue 笔记 12.04 父子组件、第三方组件库

vue 组件通信 (子传父 , 父传子 , 兄弟通信)

vue组件 $children,$refs,$parent的使用详解