实在太多了可以考虑不渲染屏幕外的元素,Discourse (就这个论坛)的做法是内容多了就把屏幕外的元素变成空 div ,这样可以降低渲染压力。虽然它用的是 Ember ,但思路是前端应用相通的。
如何实现无限加载更多?append到state多了就回卡?
lobos
#23
用唯一key一样会触发render的,除非子组件是纯函数,楼主的子组件有state,明显不是。
必须手动执行shouldComponentUpdate进行判断。
另外即使纯函数,在另一种情况下仍然会执行render,就是某个props的事件里使用了bind,例如:
<Input onChange={this.handleChange.bind(this)} ... />
每次都会执行Input的render,因为每次bind都是返回的一个新的函数。