【发布时间】:2014-02-09 21:33:30
【问题描述】:
我正在寻找使用 React 实现无限滚动的方法。我遇到了react-infinite-scroll 并发现它效率低下,因为它只是将节点添加到 DOM 而不会删除它们。是否有任何经过验证的 React 解决方案可以在 DOM 中添加、删除和维护恒定数量的节点。
这是jsfiddle 问题。 在这个问题中,我希望一次在 DOM 中只有 50 个元素。当用户上下滚动时,其他的应该被加载和删除。 我们已经开始使用 React 是因为它的优化算法。现在我找不到这个问题的解决方案。我遇到过airbnb infinite js。但它是用 Jquery 实现的。要使用这个 airbnb 无限滚动,我必须放松我不想做的 React 优化。
我要添加滚动的示例代码是(这里我正在加载所有项目。我的目标是一次只加载 50 个项目)
/** @jsx React.DOM */
var Hello = React.createClass({
render: function() {
return (<li>Hello {this.props.name}</li>);
}
});
var HelloList = React.createClass({
getInitialState: function() {
var numbers = [];
for(var i=1;i<10000;i++){
numbers.push(i);
}
return {data:numbers};
},
render: function(){
var response = this.state.data.map(function(contact){
return (<Hello name="World"></Hello>);
});
return (<ul>{response}</ul>)
}
});
React.renderComponent(<HelloList/>, document.getElementById('content'));
寻求帮助...
【问题讨论】:
标签: javascript html infinite-scroll reactjs