5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

React NativeのFlatList

Last updated at Posted at 2018-09-03
1 / 10

自己紹介

  • :octocat: yatatsu
  • PAY, inc.
  • QRコード決済ができるお支払いアプリ「PAY ID」
  • Android, iOS, React Native

FlatListとは


in Native App...

  • UITableView, UICollectionView in iOS
  • RecyclerView in Android
  • 単純なScrollViewとの違いは?
    • レイアウトの読み込み遅延と再利用

読み込み遅延

  • 表示している部分+前後
  • 大量のデータでもスムーズに動く
  • スクロールに応じて順次読み込んでいく

読み込み遅延

image


in FlatList...

  • VirtualizedList を継承
  • ScrollViewコンポーネントの中にアイテムをレイアウト
  • ScrollView→ UIScrollView / ScrollView
  • では遅延されない…?

遅延される

  • ネイティブのScrollViewの上にJS層で実装
  • 初回に読み込み+スクロールに応じてバッチで読み込み
  • 急なスクロールがあると即座に読み込み
  • 読み込み = stateを更新してrender

実装


Performance

  • getItemLayout
  • 読み込みが間に合わないときにこれが渡されていないとガクガクになる
  • scrollToItem / scrollToIndex
    • 読み込み済みのレイアウトまでしかスクロールできない
  • maxToRenderPerBatch / updateCellsBatchingPeriod / initialNumToRender
    • 白飛びを防ぎたい
    • 一度にレイアウトするアイテムを増やせる
    • パフォーマンスとのトレードオフ
5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?