父组件如何与Vue.js中的子组件通信?

安德烈·佩纳(AndréPena)

这就是我所拥有的:

<div id='vnav-container'>
    <input type="text" v-model="searchTerm" v-on:keyup="search" class="vnav-input">
    <menu :items="menu"></menu>
</div>

outer组件包含一个search-inputmenu组件。

当用户在outer组件上执行搜索时,我需要组件上调用方法menu或发出事件等,只要我可以与menu组件进行通信,说它应基于新条件对其进行过滤。

我读过某处不鼓励在子组件上调用方法,而应该使用事件。我现在正在看文档,但是我只能看到一个孩子与父母交谈的例子,反之则不行。

随着搜索条件的变化,如何与菜单组件进行通信?

编辑

根据一些博客文章,曾经有$broadcast一种旨在与子组件对话方法,但是有关该子组件的文档却消失了。这曾经是URL:http : //vuejs.org/api/#vm-broadcast

罗伊

惯例是“道具减少,事件增加”。数据通过道具从父母流到子组件,因此您可以在菜单中添加道具,也许是:

<menu :items="menu" :searchTerm="searchTerm"></menu>

过滤系统(我猜它是经过计算的?)将基于searchTerm,并且每当更改时都会更新。

当组件系统变大时,将数据传递到组件的多个层会很麻烦,通常会使用某种类型的中央存储。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章