美文网首页
FlatList的一些优化操作

FlatList的一些优化操作

作者: 森码 | 来源:发表于2018-04-20 21:24 被阅读761次
  1. PureComponent
    ItemComponent使用PureConponent
    当组件更新时,如果组件的 props 和 state 都没发生改变, render 方法就不会触发,省去 Virtual DOM 的生成和比对过程,达到提升性能的目的。具体就是 React 自动帮我们做了一层浅比较,shallowEqual 会比较 Object.keys(state | props) 的长度是否一致,每一个 key 是否两者都有,并且是否是一个引用,也就是只比较了第一层的值,深层的嵌套数据是对比不出来的。来源于 这里

  2.  keyExtractor={(item) => item.id} 
    

    避免更新序列之后,有移动的参数,从而造成整体的增删操作,如果有id,即可判断出数量是否有改变,直接移动即可,当然这个是必须的。

  3.  shouldComponentUpdate() {
         return this.state.update;
     }
    

    在需要的时候才去刷新,根据需求或者业务去控制。

  4. Item上的图片,在滑动时不要去加载,而是采用占位图。

  5.  getItemLayout={(data, index) => ({length: size(121), offset: size(121) * index, index})
    

    (来至文档)getItemLayout是一个可选的优化,用于避免动态测量内容尺寸的开销,不过前提是你可以提前知道内容的高度。如果你的行高是固定的,getItemLayout用起来就既高效又简单,如果使用了ItemSeparatorComponent,要加上那个差值(120+1)。

相关文章

网友评论

      本文标题:FlatList的一些优化操作

      本文链接:https://www.haomeiwen.com/subject/cqgwkftx.html