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
Vue.js 父级和子级是否可以侦听同一事件并将数据合并到一起-Vue?_Vue.js_Button_Vuejs2_Vue Component_Parent Child - Fatal编程技术网

Vue.js 父级和子级是否可以侦听同一事件并将数据合并到一起-Vue?

Vue.js 父级和子级是否可以侦听同一事件并将数据合并到一起-Vue?,vue.js,button,vuejs2,vue-component,parent-child,Vue.js,Button,Vuejs2,Vue Component,Parent Child,如果父类中有一个按钮,子类存储某些数据。父类还存储不同的数据 当我们单击父类的按钮时,子类是否可以侦听此事件,然后将此数据传递给父类,然后父类也会获取自己的数据并将此数据合并在一起 它们如何监听同一个按钮事件,然后检索数据并相互传递数据?数据需要通过另一个函数来格式化/更改值,而不仅仅是显示此数据 既然这个按钮似乎影响两个组件,并且数据被传递,那么这是否可能以及如何实现 谢谢 孩子们无法捕捉父母的事件。子级可以公开父级可以调用的方法,或者您可以创建一个被动属性,该属性表示单击父级按钮时状态发生的

如果父类中有一个按钮,子类存储某些数据。父类还存储不同的数据

当我们单击父类的按钮时,子类是否可以侦听此事件,然后将此数据传递给父类,然后父类也会获取自己的数据并将此数据合并在一起

它们如何监听同一个按钮事件,然后检索数据并相互传递数据?数据需要通过另一个函数来格式化/更改值,而不仅仅是显示此数据

既然这个按钮似乎影响两个组件,并且数据被传递,那么这是否可能以及如何实现


谢谢

孩子们无法捕捉父母的事件。子级可以公开父级可以调用的方法,或者您可以创建一个被动属性,该属性表示单击父级按钮时状态发生的任何更改

事件杂乱无章,层次很低,你不应该为不能使用它们而悲伤。使用状态和反应性要干净得多。Vue组件实际上应该只存储“私有”状态。道具可用于将状态传递给直系子女。最好将状态提取到a)一个普通的老javascript对象中,通过
数据
提供/注入
,或b)vuex传递,然后观察反应性发挥其魔力

定义数据时,可以在任何地方引用任何内容。因此,如果您在中创建一个对象,我们将其命名为$myState

Vue.prototype.$myState={myProp:“你好”,myName:“西蒙”}

然后您可以在任何组件的数据中引用它

data:function(){return{myState:this.$myState}


有些人会反对这样做会产生意大利面——任何地方的任何东西都可以修改全局状态对象,但对于许多应用程序来说,“规范化”所带来的简单性声明并集中存储它将超过成本。

感谢您的解释,我不确定替代方案的细节,因此需要做一些研究a)一个普通的旧javascript对象,通过
数据传递,这意味着什么?我认为data(){return someFields},只能在一个组件中访问?谢谢!如果有许多组件,则添加全局作用域似乎有点危险封装和信息隐藏很重要,但人们不担心其他任何事情。以创建一个全局为代价,您可以完全分离状态和表示。我发现这导致应用程序非常容易更容易理解,这是一天结束时的目标。我为此写的文章显示了模式。通过封装状态来解决这一问题将是一场噩梦。