Ich suche nach Möglichkeiten, um mit React unendliches Scrollen zu implementieren. Ich bin auf React-Infinite-Scroll gestoßen und fand es ineffizient, da es nur Knoten zum DOM hinzufügt und diese nicht entfernt. Gibt es eine bewährte Lösung mit React, mit der eine konstante Anzahl von Knoten im DOM hinzugefügt, entfernt und beibehalten wird?
Hier ist die jsfiddle Problem. In diesem Problem möchte ich nur 50 Elemente gleichzeitig im DOM haben. andere sollten geladen und entfernt werden, wenn der Benutzer nach oben und unten scrollt. Wir haben begonnen, React aufgrund seiner Optimierungsalgorithmen zu verwenden. Jetzt konnte ich keine Lösung für dieses Problem finden. Ich bin auf Airbnb Infinite Js gestoßen . Aber es wird mit Jquery implementiert. Um diese unendliche Airbnb-Schriftrolle zu verwenden, muss ich die React-Optimierung verlieren, die ich nicht tun möchte.
Beispielcode, den ich hinzufügen möchte, ist scroll (hier lade ich alle Elemente. Mein Ziel ist es, jeweils nur 50 Elemente zu laden).
/** @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'));
Suche nach Hilfe...
quelle
var count = pageHeight / minElementHeight
. Sie können also 50 Elemente erstellen, obwohl nur 3 gerendert werden, aber das gibt Ihnen trotzdem eine gute Leistung.Schauen Sie sich unsere React Infinite Library an:
https://github.com/seatgeek/react-infinite
Update Dezember 2016
Ich habe in letzter Zeit in vielen meiner Projekte React-Virtualized verwendet und festgestellt, dass es die meisten Anwendungsfälle viel besser abdeckt. Beide Bibliotheken sind gut, es kommt genau darauf an, wonach Sie suchen. Zum Beispiel reagieren virtualisierten Unterstützung variabler Höhe JIT Mess über eine HOC genannt
CellMeasurer
, Beispiel hier https://bvaughn.github.io/react-virtualized/#/components/CellMeasurer .Update November 2018
Viele der Lehren aus der Reaktiv-Virtualisierung wurden auf die kleineren, schnelleren und effizienteren portiert vom selben Autor React-Window- Bibliothek .
quelle
quelle