我们假设我们有以下抽象设置:
<template name="parent">
{{> child childProps}}
</template>
和辅助函数:
Template.parent.helpers({
childProps() {
const instance = Template.instance();
return {
// whatever props we want
};
}
});
我想知道允许parent
组件向其child
组件发送事件的最佳方法是什么。
我至少可以想到两种方法:
不要发送事件,只能通过props
控制孩子。这可能是一些人建议做的。问题是这种方法需要child
来跟踪它的Template.currentData()
上下文,并相应地对潜在的变化做出反应,这使得实现变得更加复杂和容易出错。
在instance.emitter = new EventEmitter()
挂钩中创建onCreated
并将其传递给child
数据上下文,以便它可以为某些事件添加侦听器。这似乎更灵活,更不容易出错,但仍然有点复杂,因为孩子需要正确地管理听众清理不仅仅是在它的生命周期方法,例如, onDestroy
但也是当前数据上下文更改的结果。
有没有人有其他想法如何在Blaze
中实施此模式?是否有某种标准的方法,或者可能已经解决了这个问题的一些软件包?