-
Notifications
You must be signed in to change notification settings - Fork 24.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ListView component easily displays performance issues #127
Comments
Jay, I'm pretty sure your implementation is funky if you're getting that type of performance. Are you sure you're doing things the 'React' way? |
@jaygarcia Can you share an example project I can run on my device? |
@nick -- If the 'React way' isn't what's in the examples (or below), I don't know what is. @amccloud, the below gist is a /slightly/ modified version of the UIExplorer's "ListViewSimpleExample.js" file, removing the need for "UIExplorerPage" The following is the root view, implements "ListView.js" (above).
|
I believe the ListView renders one cell at a time after the initial render. You can tell it to render 100 cells per rAF or ensure the data source is populated the first time you render the ListView. |
Fantastic. Just noticed the following in the ListView.js file.
|
Resolved via the following
Though, DEFAULT_INITIAL_ROWS should probably be > 15 or so in Components/ListView/ListView.js |
Yeah, ideally we could figure more of this out automatically rather than you needing to tweak the params manually. The defaults are optimized for Groups which have much taller rows.
|
We're also probably going to simplify and further optimize this component significantly in the not-so-distant future - if anyone wants to take a stab at it, we were thinking of simply relying on the row components' shouldComponentUpdate methods instead of the DataSource, etc.
|
Team: This type of performance issue is something that will not be accepted by the community when this thing launches. The slowest HTML5 frameworks can render items way faster than this.
Demo: http://www.screencast.com/t/mQpzX1ZAE2
This issue can be replicated on an iPhone6.
The text was updated successfully, but these errors were encountered: