假设组件名称是" customComponent"
及其用法示例:
#!/bin/bash
让我们假设,' someTruthyCondition'是真实的util 3组件生成和递归停止。
我想知道如何在vue js中将子customComponent与父customComponent之间进行通信?
答案 0 :(得分:0)
我不确定这是否有效,因为你的例子感觉像是一个代码味道,我没有尝试过这样的事情。您可以使用事件,每当创建子组件时,您都可以向父级发出一个事件:
https://vuejs.org/v2/guide/components.html#Using-v-on-with-Custom-Events
在Vue.js文档的示例中,他们使用了这个:
<button-counter v-on:increment="incrementTotal"></button-counter>
因此子组件在created
生命周期钩子中调用它:
this.$emit('increment')
每当你在父母身上收到这个事件时,你可以只增加一个数字,当它达到3时你就停止v-for
循环。
<custom-component class='child'></custom-component>
当然,我不知道这是否会起作用,但在我的头脑中,这是我想出来的。
答案 1 :(得分:0)
我没有对此进行测试,但我认为这样的事情可能对你有所帮助。
main.js:
window.Event = new Vue();
父元素:
mounted () {
Event.$on('recursion', () => {
this.recursion++;
})
}
子元素:
created () {
Event.$emit('recursion');
}
答案 2 :(得分:0)
您可以在Vue.js中将函数用作道具。这不是常见的模式 因为与React不同,Vue.js具有自定义事件 儿童与父母之间的沟通。但是对于这种情况, 派上用场。
与在每个级别发出事件不同,这更简单且 因为我们只需要传递相同的参考 功能。
检出this。
答案 3 :(得分:0)
使用v-on="$listeners"
递归子级将事件触发给父级。
将任何事件侦听器附加到组件的首次调用时,通过这种方式,您可以附加到所有递归调用组件。
<custom-component class='parent' @click="doSomething()">
<div v-if='someTruthyCondition'>
<custom-component class='child' v-on="$listeners"></custom-component>
</div>
</custom-component>
现在在您使用它的组件中,将使用doSomething
方法-它会被任何递归子级触发