react组件传值_react父组件像children属性里的子组件传值的思考

之前的造轮子里,有遇到过这个问题的。当时就直接用的context做的。因为想了想,确实是没有想到如何从父组件那里传到children那里的。

今天群里的一个挺流弊哄哄的装逼的伪大佬,问到了这个问题了哦!有另一个大佬告诉他答案。

思路,用这个组件的children属性,这个属性赋值为,

拿到对应的children组件数组,或者类数组,然后map遍历这个类数组,返回单个组件的clone的组件,用 react.clone方法,第二个参数把要传入的数据传进去!

这个方法,,,我想了想,确实是可以的!但是,对比了一下context,感觉如果我思考一点点,都会觉得context更优雅,而且react自优化,更react福利局。而这个思路是什么意思?就是强制性地把父元素的所有的children都重新更新了指针数据包,重新渲染刷新了一下版本的,这不就是性能浪费么?而且是人为强制性地,刷新所有。也不知道那位装逼的伪大佬,为啥不思考一下呢?或许我思考的有偏差,但是我想了想,还是觉得context是更精准更可控的,更有效的,react范畴内的。嗯,就是觉得这哥们儿太会装逼了哦!

所以,我觉得这是我自己的取舍的。context在应对独立性很强的组件,以及单纯地非动态交互那里,是很实用的,也不会出什么context嵌套多了,管理可能冲突紊乱之类的。反而是,性能好,符合预期的。至于上面的那种,,,其实原理就是把组件的children属性赋值,我学了go以后,这里的消耗我就有点明白了,它这里是把旧的数据们全都深拷贝一份,当然,传入的属性值需要改的。这些数据都要消耗n内存性能,以及深拷贝的性能的。然后才是全部都渲染刷新这里的。

所以,我现在的思路就是,只要context用的没有问题,那就用它传到children里吧!多简单,智能,可靠!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值