为了账号安全,请及时绑定邮箱和手机立即绑定

在props中传递数据是否会复制该数据?

在props中传递数据是否会复制该数据?

Smart猫小萌 2019-04-10 18:19:53
我正在React中构建一个仪表板,目前我正在构建一个小按钮组件,允许用户将图表中的数据作为CSV文件下载。像这样的东西:// Dashboardrender(){   const data=makeLargeDataset(); // make an array with 1m rows   return (     <DownloadCSV data={data} />   );}// Download ButtononClick(){   if (this.props.data){     convertAndDownload(this.props.data);   }}传递给按钮的道具时,这会复制1M行吗?如果我必须通过几层传递道具,它会不断重复?有没有更聪明的方法来传递道具 - 或者通常使用大型变量和数组 - 所以它不是浪费或低效?
查看完整描述

2 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

不,它没有。

从高阶组件传递到子组件的任何道具总是引用相同的道具。它被称为单一真理来源。您可以更改HO组件和React中的一个数据点,因为名称告知只对更改做出反应,而不是其他任何内容。

保存这些大数据集的一种简单方法是使用类似于Redux保持数据安全的存储,但更聪明的方法是根据您的需要创建API或微服务并调用它而不是在上面加载一百万行。浏览器。


查看完整回答
反对 回复 2019-05-17
?
隔江千里

TA贡献1906条经验 获得超10个赞

您没有传递数据副本,您正在传递引用。

您可以考虑以某种方式对数据进行分页,以便处理较小的数组。


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 455 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号