这就是我所拥有的:
<div id='vnav-container'>
<input type="text" v-model="searchTerm" v-on:keyup="search" class="vnav-input">
<menu :items="menu"></menu>
</div>
该outer
组件包含一个search-input
和menu
组件。
当用户在outer
组件上执行搜索时,我需要在组件上调用方法menu
或发出事件等,只要我可以与menu
组件进行通信,说它应基于新条件对其进行过滤。
我读过某处不鼓励在子组件上调用方法,而应该使用事件。我现在正在看文档,但是我只能看到一个孩子与父母交谈的例子,反之则不行。
随着搜索条件的变化,如何与菜单组件进行通信?
编辑
根据一些博客文章,曾经有$broadcast
一种旨在与子组件对话的方法,但是有关该子组件的文档却消失了。这曾经是URL:http : //vuejs.org/api/#vm-broadcast
惯例是“道具减少,事件增加”。数据通过道具从父母流到子组件,因此您可以在菜单中添加道具,也许是:
<menu :items="menu" :searchTerm="searchTerm"></menu>
过滤系统(我猜它是经过计算的?)将基于searchTerm
,并且每当更改时都会更新。
当组件系统变大时,将数据传递到组件的多个层会很麻烦,通常会使用某种类型的中央存储。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句