Javascript 多反应组件体系结构
我正在创建一个使用数据API的实时仪表板。该应用程序是一个同构的react应用程序,构建在节点API之上,我使用的是Flux架构,更具体地说是 我的问题是仪表板有大约4/5个实时图表(我正在使用,每个图表调用一个API端点。我有一个主要的Javascript 多反应组件体系结构,javascript,reactjs,isomorphic-javascript,Javascript,Reactjs,Isomorphic Javascript,我正在创建一个使用数据API的实时仪表板。该应用程序是一个同构的react应用程序,构建在节点API之上,我使用的是Flux架构,更具体地说是 我的问题是仪表板有大约4/5个实时图表(我正在使用,每个图表调用一个API端点。我有一个主要的组件,在这个组件中,每个图表组件都存在。我的问题是应该负责监听数据并将其作为道具传递,还是每个图形组件应该负责自己的存储/操作生命周期?如果我通过作为道具,这是否意味着用户界面将重新播放超过要求的内容 我还没有找到任何反应/仪表板/图表应用程序的例子,所以如果有
组件,在这个组件中,每个图表组件都存在。我的问题是
应该负责监听数据并将其作为道具传递,还是每个图形组件应该负责自己的存储/操作生命周期?如果我通过作为道具,这是否意味着用户界面将重新播放超过要求的内容
我还没有找到任何反应/仪表板/图表应用程序的例子,所以如果有人知道这将是非常有用的。
< P>最好是将API访问权限保持在顶层,并将所有的东西都通过道具传递。考虑将API中的数据放到一个存储区中,并使用它来驱动顶级组件。这样做的好处:- 现在,您可以在多个位置自由使用相同的数据-它不会被困在子组件中
- 测试是简化的,因为您只需传递一些虚拟道具,并确认您得到了正确的结果
- 更容易推理:子组件不再需要关心其数据来源的实现细节
关于你的性能问题:考虑使用和只更新需要改变的商店的部分。这样,你的图表组件可以很快地告诉你,任何东西都已经改变了,如果没有什么变化,就不会重新渲染。
我会把它们分成单独的代码>商店< /代码>。但是你应该提到的方式应该是B。e好的。你不会重新渲染超过要求的内容。你的每个子组件都可以有组件WillReceiveProps()
,如果道具没有更改,你就不需要重新渲染这些组件。如果你作为道具通过,你可以捕获非更改并在shouldComponentUpdate()期间终止渲染