当前播放: 06 | 理解Virtual DOM及key属性的作用
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章 :React 基础 (10讲)
01 | 课程介绍
免费
02 | React出现的历史背景及特性介绍
免费
03 | 以组件方式考虑UI的构建
免费
04 | JSX的本质 : 不是模板引擎,而是语法糖
免费
05 | React组件的生命周期及其使用场景
06 | 理解Virtual DOM及key属性的作用
07 | 组件设计模式 : 高阶组件和函数作为子组件
08 | 理解新的Context API及其使用场景
09 | 使用脚手架工具创建React项目
10 | 打包和部署
第二章 :React 生态圈 (12讲)
11 | Redux(1) : 前端为何需要状态管理库
12 | Redux(2) : 深入理解Store、Action、Reducer
13 | Redux(3) : 在React中使用Redux
14 | Redux(4) : 理解异步Action、Redux中间件
15 | Redux(5) : 如何组织Action和Reducer
16 | Redux(6) : 理解不可变数据(Immutability)
17 | React Router(1):路由不只是页面切换,更是代码组织方式
18 | React Router(2):参数定义,嵌套路由的使用场景
19 | UI组件库对比和介绍:Ant.Design、Material UI、Semantic UI
20 | 使用Next.js创建React同构应用
21 | 使用Jest、Enzyme等工具进行单元测试
22 | 常用开发调试工具:ESLint、Prettier、React DevTool、Redux DevTool
第三章 :构建可维护可扩展的前端应用 (6讲)
23 | 前端项目的理想架构:可维护、可扩展、可测试、易开发、易建构
24 | 拆分复杂度(1):按领域模型(feature)组织代码,降低耦合度
25 | 拆分复杂度(2):如何组织component、action和reducer
26 | 拆分复杂度(3):如何组织React Router的路由配置
27 | 使用Rekit(1):创建项目,代码生成和重构
28 | 使用Rekit(2):遵循最佳实践,保持代码一致性
第四章 :常见场景的最佳实践 (13讲)
29 | 使用React Router管理登录和授权
30 | 实现表单(1):初始数据,提交和跳转
31 | 实现表单(2):错误处理,动态表单元素,内容动态加载
32 | 列表页(1):搜索,数据缓存和分页
33 | 列表页(2):缓存更新,加载状态,错误处理
34 | 页面数据需要来源多个请求的处理
35 | 内容页的加载与缓存
36 | 基于React Router实现分步操作
37 | 常见页面布局的实现
38 | 使用React Portals实现对话框,使用antd对话框
39 | 集成第三方JS库:以d3.js为例
40 | 基于路由实现菜单导航
41 | React中拖放的实现
第五章:React性能优化 (5讲)
42 | 性能永远是第一需求:时刻考虑性能问题
43 | 网络性能优化:自动化按需加载
44 | 使用Reselect避免重复计算
45 | 下一代React:异步渲染
46 | 使用Chrome DevTool进行性能调优&结课测试
06 | 理解Virtual DOM及key属性的作用

06 | 理解Virtual DOM及key属性的作用

王沛
eBay中国研发中心资深技术专家
全集7602
新人首单 ¥49.9 原价 ¥199
28
本节摘要

基础知识点预习

课程源代码地址:

猜你喜欢

unpreview

展开
登录 后留言

精选留言(19)

  • Juntíng
    听了几节课下来,老师基本以面来讲解一个大的知识点,细节上的知识点需要自己去吸收和获取。
    2018-07-03
    12
  • 望月人
    这里要批评一下react对于key的报错, 很多时候并没有报到点子上

    作者回复: 嗯嗯,确实是个问题,无法精确定位哪个key重复。好的习惯就是一旦有这样的错误,立刻解决掉,否则积累多了会比较麻烦。

    2018-08-17
    4
  • Se7ven
    你还是没有说清楚,到底什么是虚拟DOM??以及它的作用,你说了很多都是diff算法的事,可是你的标题是虚拟DOM和key,

    作者回复: 和虚拟 DOM 对应的是实体 DOM,实体 DOM 是真正展示给用户看的 UI 背后的 DOM 结构。虚拟 DOM 只在内存中维护,当所有对其的修改完成后,React 将其应用到实体 DOM。应用的过程是找到所有虚拟 DOM 和当前实体 DOM 的区别(diff),从而高效的完成应用(修改实体 DOM)过程。理解了 diff 也就理解了虚拟 DOM。

    2019-11-16
    1
    3
  • 爱学习的大叔
    老手讲的很棒,已经开始学习了。发现掌握生命周期就基本上可以做个react.js程序了
    2019-08-24
    3
  • Geek_83f232
    老师讲课思路清晰,喜欢,希望老师出更多优秀的课程!

    作者回复: 谬赞啦~

    2019-11-05
    2
  • hanyoujia
    为啥普通算法两棵树的diff算法是O(N^3) 而不是O(N^2)

    作者回复: 如果有兴趣可以看下相关的算法实现:https://grfia.dlsi.ua.es/ml/algorithms/references/editsurvey_bille.pdf ,这是 React 文档中提到的普通 tree 的 diff 算法。https://reactjs.org/docs/reconciliation.html

    2019-08-20
    2
  • 王小骚
    为什么ajax需要在componentdidmount中执行呢

    作者回复: ajax 在 didMount 或者 didUpdate 都可以,根据具体的需求。如果某个请求不会依赖属性变化,而是只在组件创建时执行,那么可以在 didMout。放在 didUpdate 则需要根据状态变化来判断是否要真的发起 ajax 请求。

    2018-11-03
    1
    2
  • Feeng
    老师,如果没有key的情况下,react的diff算法将会怎么计算?
    2020-04-05
    1
  • 骑个隆咚锵老干部
    如果你的组件实现了 getSnapshotBeforeUpdate() 生命周期(很少见), 它返回的值将作为第三个 snapshot 参数传递给 componentDidUpdate() 。 否则这个参数将是 undefined 。
    2019-10-05
    1
  • 融梨
    老师,虚拟DOM解决了什么问题?
    2019-05-15
    1
    1
  • Sure
    componentDidUpdate回调中的入参prevScrollHeight是从哪儿来的呢

    作者回复: 来自于getSnapshotBeforeUpdate 这个生命周期方法。

    2018-11-29
    1
  • yangguang
    第一次买的课程,讲的通俗易懂,感谢老师
    2018-07-18
    1
  • 骑个隆咚锵老干部
    prevScrollHeight 这个参数是怎么得到的?能不能讲一些代码细节,例如 class field 模式和 constructor 模式
    2019-10-05
  • 老师,我到本节课的codesandbox上点开了 dom-diff 的例子,发现现一个问题:从Shape 4变到Shape 5,那个B结点明明不需要变化,但控制台里却显示这个B被删除了又重新创建了。
    Shape 4:A->B,D; D->C
    Shape 5:A->B,C;
    2019-07-10
  • 融梨
    请问,Demo地址、仓库地址无法使用了吗?

    作者回复: 可以用啊,有问题在guthub提issue

    2019-04-29
  • moss
    这里面每一个节点,是对应一个react component吗?
    还是说每一个节点,对应真实的DOM树上的节点?
    2019-04-15
    1
  • 洋洋
    老师您好,我以前是vue开发,最近才转的react,对于react的生命周期方法,官网有componentWillMount,项目代码中也有用,老师好像没有提,是这个方法不推荐使用吗?
    2019-03-23
    1
  • 小小白
    王老师你好,请问现在已有像 Flow 和 Typescript 这种静态类型检查工具,是否可以不用 【prop-types】库了,还是说两者要结合着用呢?还请老师能解答一下,谢谢!

    作者回复: 是的,如果用 typescript 或者 flow,就不需要 prop-types 做检查。

    2018-12-12
  • wade2999
    这一节课老师好像没有讲解key属性的内容吧,是视频剪辑掉了吗

    作者回复: 并没有减掉,在虚拟 dom diff 算法的介绍里有提到。

    2018-12-02
收起评论
看过的人还看
玩转webpack

程柳锋  腾讯高级工程师,IVWEB团队社区和工程化负责人

84讲 | 7622 人已学习

新人首单 ¥19.9 原价 ¥99
TypeScript开发实战

梁宵  搜狗营销事业部高级架构师

47讲 | 4559 人已学习

新人首单 ¥29.9 原价 ¥129
Node.js开发实战

杨浩  腾讯高级工程师

57讲 | 6248 人已学习

新人首单 ¥29.9 原价 ¥129
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 46193 人已学习

新人首单 ¥19.9 原价 ¥99