Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue-将数组从子组件绑定到父组件_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript Vue-将数组从子组件绑定到父组件

Javascript Vue-将数组从子组件绑定到父组件,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,我在很多场合都遇到过同样的情况,不知道我错过了什么 假设我想创建一个组件,其中包括一个列表(为了简单起见是一个todo列表)和一个用于将todo插入列表的输入字段。 现在,我想从父组件访问此列表 当然,使用事件通知父级列表中的任何更改,使其同步维护自己的列表并不是一个好的解决方案,我应该找到一种方法,通过绑定到同一个列表来实现这一点 第二个糟糕的解决方案是在父级中初始化列表并将其作为道具传递给子级,这也是糟糕的,因为我想将列表维护与父级分离以进行抽象 我能想到的最好的解决方案是在子组件中处理列表

我在很多场合都遇到过同样的情况,不知道我错过了什么

假设我想创建一个组件,其中包括一个列表(为了简单起见是一个todo列表)和一个用于将todo插入列表的输入字段。 现在,我想从父组件访问此列表

当然,使用事件通知父级列表中的任何更改,使其同步维护自己的列表并不是一个好的解决方案,我应该找到一种方法,通过绑定到同一个列表来实现这一点

第二个糟糕的解决方案是在父级中初始化列表并将其作为道具传递给子级,这也是糟糕的,因为我想将列表维护与父级分离以进行抽象

我能想到的最好的解决方案是在子组件中处理列表,并且在任何更改时,都会向父组件发出一个关于列表的更改事件(与输入字段的更改事件相同),但我不确定这是否是最理想的方法

你知道怎么解决这个问题吗?听起来很普通,虽然我在网上找不到任何好的解决方案


编辑:只需阅读有关同步修改器的内容,它听起来与我所看到的非常接近。不知道这是否是一个很好的使用它的用例…

我不知道Vue的确切情况,但在angular中,我们可以像这样使用绑定:

{{getChild.message}

调用子方法
Imo,显示数据和获取数据应该分开。让子组件只显示数据,让父组件获取数据并不是一个坏的解决方案,但事实并非如此。我希望子级获取/修改数据,父级将其用作http请求参数(例如)。因此,子级和父级都应该使用数据,但出于抽象目的,我希望将数据保存在子级中。在任何一种情况下,数据都应该在尽可能高的级别获取,以便于填充。如果您想在许多组件之间共享数据,只需使用VueX。我不同意您的看法。有时,您可能希望创建一个通用组件,然后在其他组件中使用它,为了保持该通用组件中的逻辑,您必须在该组件中管理init列表(否则您将无法修改它,并且为父级发出事件以修改列表将使您失去泛型优势)您可以创建一个通用组件来显示数据,并让父级处理获取数据的任务。在这种情况下,通用组件不关心如何获取数据,因此与Api没有依赖关系。通用组件可能只接受具有给定结构(带验证)的对象列表。