我正在使用React创建Google Analytics网页(与Google Analytics类似)。
我有一个主要组件,它封装了可用的不同页面(一个概述,然后是特定的下钻)。
function Analytics(props) {
return (
<div id="main" className="analytics">
<AnalyticsFilter />
<div id="content">
<div id="contentsub">
{props.children}
</div>
</div>
</div>
);
}
AnalyticsFilter
是一种过滤显示数据的方法 - 它对所有页面都是相同的,因此它包含在这里。这个想法是显示数据的组件(props.children
)会从过滤器请求它,然后懒惰地加载数据(并且可能也会缓存它),因为多个组件可能以不同的方式显示相同的数据(图表,表格,top10等)。
我的问题:促进页面上任何组件与AnalyticsFilter组件之间通信的理想方式是什么?
过滤器将有4-6个不同的数据集可用(全部基于相同的过滤器参数),但我不想查询所有不需要的页面(即只有特定的视图)关心特定的数据集。)
因此,组件应该能够
一切都是开放的,因为我刚刚开始(对React来说还是新手)。这里的Analytics
组件可以轻松地重写,以包含更多功能,如果这样可以更容易。