Ehan Van的博客
首页
前端笔记
首页
前端笔记
  • 前端笔记

    • v-on的使用
    • 编写一个Vue递归组件
    • 非vue文件中申明的ref如何使用
    • Vue3如何在hook中执行异步函数并同步返回响应式数据
    • 如何终止forEach循环
    • 递归创建下拉树数据
    • 编写一个Vue Web Components
    • js数组toString的使用
    • vueconfig配置多page遇到的坑
    • js事件循环机制
    • React列表渲染中图片闪烁问题
    • 开发中未配置Referrer遇到的坑
    • 前端实现文件分片上传
    • 防抖函数
    • 编写一个vue插件
    • 发布订阅模式

问题

videoList数据更新后,列表中的图片会闪烁 图片

原因

  • 使用了函数式组件
  • 由于数据更新render方法调用VideoItems返回的是一个新的React Dom节点,React不能有效在render中diff列表变化,以至页面重绘列表图片重新加载

解决办法

不使用函数式组件渲染列表,如下:

图片

使用useCallbak hook对数据进行监听,数据更新时组件重新渲染

图片

Prev
js事件循环机制
Next
开发中未配置Referrer遇到的坑