首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuejs2.0中的递归组件通信

Vuejs2.0中的递归组件通信
EN

Stack Overflow用户
提问于 2017-10-30 17:43:34
回答 4查看 913关注 0票数 4

假设组件名称为"customComponent“

以及它的使用示例:

代码语言:javascript
复制
<custom-component class='parent'>
  <div v-if='someTruthyCondition'>
    <custom-component class='child'></custom-component>
  </div>
</custom-component>

让我们假设,'someTruthyCondition‘是真的,直到3个组件被生成并且递归停止。

我想知道如何在vue js中从子customComponent到父customComponent进行通信?

EN

回答 4

Stack Overflow用户

发布于 2017-10-30 17:57:42

我不确定这是否会起作用,因为你的例子感觉像是代码气味,而我还没有尝试过这样的东西。您可以使用事件,并且无论何时创建子组件,都可以向父组件发出事件:

https://vuejs.org/v2/guide/components.html#Using-v-on-with-Custom-Events

在来自Vue.js文档的示例中,他们使用了以下内容:

代码语言:javascript
复制
<button-counter v-on:increment="incrementTotal"></button-counter>

因此,子组件在created生命周期钩子中调用此函数:

代码语言:javascript
复制
this.$emit('increment')

当你在你的父母内部收到这个事件时,你可以递增一个数字,当它达到3时,你就会停止你的v-for循环。

代码语言:javascript
复制
<custom-component class='child'></custom-component>

诚然,我甚至不知道这是否可行,但在我的头顶上,这是我想出来的东西。

票数 1
EN

Stack Overflow用户

发布于 2019-07-26 18:23:47

在Vue.js中,您可以将函数用作道具

。这不是一种常见的模式,因为与React不同,Vue.js具有用于子代到父代通信的自定义事件。但对于像这样的情况,它真的很方便。

与在每个级别上发出事件不同,这要简单得多,性能也高得多,因为我们只需要向下传递对函数的相同引用。

查看this

票数 1
EN

Stack Overflow用户

发布于 2017-10-30 18:02:21

我还没有测试过,但我认为这样的东西可能会对你有所帮助。

main.js:

代码语言:javascript
复制
window.Event = new Vue();

父元素:

代码语言:javascript
复制
mounted () {
    Event.$on('recursion', () => {
        this.recursion++;
    })
}

子元素:

代码语言:javascript
复制
created () {
    Event.$emit('recursion');
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47012103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档