下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 44 | 使用Reselect避免重复计算
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

React实战进阶45讲

共46讲 · 45课时·约560分钟
6241
免费
01 | 课程介绍
免费
02 | React出现的历史背景及特...
免费
03 | 以组件方式考虑UI的构建
免费
04 | JSX的本质 : 不是模板引...
05 | React组件的生命周期及其...
06 | 理解Virtual DOM及key属...
07 | 组件设计模式 : 高阶组...
08 | 理解新的Context API及其...
09 | 使用脚手架工具创建React...
10 | 打包和部署
11 | Redux(1) : 前端为何...
12 | Redux(2) : 深入理解S...
13 | Redux(3) : 在React中...
14 | Redux(4) : 理解异步A...
15 | Redux(5) : 如何组织A...
16 | Redux(6) : 理解不可...
17 | React Router(1):路由...
18 | React Router(2):参数...
19 | UI组件库对比和介绍:Ant...
20 | 使用Next.js创建React同...
21 | 使用Jest、Enzyme等工具...
22 | 常用开发调试工具:ESLint...
23 | 前端项目的理想架构:可维...
24 | 拆分复杂度(1):按领域...
25 | 拆分复杂度(2):如何组...
26 | 拆分复杂度(3):如何组...
27 | 使用Rekit(1):创建项目...
28 | 使用Rekit(2):遵循最佳...
29 | 使用React Router管理登...
30 | 实现表单(1):初始数据...
31 | 实现表单(2):错误处理...
32 | 列表页(1):搜索,数据...
33 | 列表页(2):缓存更新,...
34 | 页面数据需要来源多个请求...
35 | 内容页的加载与缓存
36 | 基于React Router实现分...
37 | 常见页面布局的实现
38 | 使用React Portals实现对...
39 | 集成第三方JS库:以d3.js...
40 | 基于路由实现菜单导航
41 | React中拖放的实现
42 | 性能永远是第一需求:时刻...
43 | 网络性能优化:自动化按需...
44 | 使用Reselect避免重复计算
45 | 下一代React:异步渲染
46 | 使用Chrome DevTool进行...
本节摘要
展开

精选留言(3)

  • 2019-03-03
    老师

    这个输入框的setState为什么会引起表格的重新渲染呢?

    不是说会有diff算法吗?
    1
    1
  • 这个输入框的setState为什么会引起表格的重新渲染呢?
    不是说会有diff算法吗?

    个人理解
    render的过程 = 1. 在virtual dom render + 2. 跑diff算法 + 3. 更新实际的 dom
    虽然表格对应的dom sub tree前后无变化,但是在virtual dom 里面render是避免不了的,导致了那一句console.log("get data source")被执行

    参考了
    https://medium.com/@gethylgeorge/how-virtual-dom-and-diffing-works-in-react-6fc805f9f84e
    展开
  • 2018-09-10
    老师您好,请教个问题,1.如果一个列表中有很多图片,那么内存会飙升,应该如何解决这个问题. 2.组件是否可重用,以减少内存开销.

    作者回复: 首先确定是否图片多还是组件多导致内存上升。如果是图片,那么需要采用类似虚拟滚动的技术,只有当图片出现在可视区域再去显示。如果是组件多,那么对于图片这种简单的场景,直接用 img 而不一定要封装成复杂的 图片组件。