unco020511
193 天前
移动端的列表控件会在背后做非常多的工作,以便解决列表渲染的性能.就拿 android 端的 recyclerview 举例:
1. 视图复用( View Recycling ):RecyclerView 通过 ViewHolder 模式来复用已经创建的视图。简单来说,当某个视图滚出屏幕时,它不会被销毁,而是会被放入一个"回收池"中。当新的视图需要显示时,RecyclerView 会从这个回收池中取出一个视图,并绑定新的数据。这大大减少了视图创建和销毁的开销。
2 .按需加载( Lazy Loading ):RecyclerView 只会创建和绑定当前屏幕上可见的视图,以及少量即将进入屏幕的视图。这样可以有效减少内存消耗和处理时间。
3. 布局管理器( LayoutManager ):RecyclerView 使用 LayoutManager 来决定如何在屏幕上排列子视图。不同的 LayoutManager 可以实现不同的布局方式,如线性布局、网格布局等。LayoutManager 负责计算哪些视图需要显示,哪些可以复用。
4 .差分更新( Diff Util ):RecyclerView 支持高效的数据更新。当数据集发生变化时,可以使用 DiffUtil 来计算新旧数据集之间的差异,只更新那些真正改变的部分,而不是重新渲染整个列表。