React 实战进阶 45 讲
王沛
eBay 中国研发中心资深技术专家
35691 人已学习
新⼈⾸单¥68
课程目录
已完结/共 46 讲
React 实战进阶 45 讲
登录|注册
留言
22
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 05 | React组件的生命周期及其使用场景
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
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) : 深入理解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
23 | 前端项目的理想架构:可维护、可扩展、可测试、易开发、易建构
24 | 拆分复杂度(1):按领域模型(feature)组织代码,降低耦合度
25 | 拆分复杂度(2):如何组织component、action和reducer
26 | 拆分复杂度(3):如何组织React Router的路由配置
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实现对话框,使用antd对话框
39 | 集成第三方JS库:以d3.js为例
40 | 基于路由实现菜单导航
41 | React中拖放的实现
42 | 性能永远是第一需求:时刻考虑性能问题
43 | 网络性能优化:自动化按需加载
44 | 使用Reselect避免重复计算
45 | 下一代React:异步渲染
46 | 使用Chrome DevTool进行性能调优&结课测试
本节摘要

纠正

Demo 代码里面的 "Clock did unmount" 应为 "Clock did mount"。

基础知识点预习

课程源代码地址:

猜你喜欢

unpreview

登录 后留言

全部留言(22)

  • 最新
  • 精选
Bojack
getsnapshotbeforeupdate 应该是在render 之后调用的吧

作者回复: 是的。render 调用后触发 update 流程。

2019-01-17
8
matwming
老师讲的真好,非常适合有一定基础的人看,更能深刻领悟老师讲的东西。

作者回复: 感谢支持!

2018-11-17
2
6
wade2999
老师你好,在SnapshotSample demo里, componentDidUpdate里面的参数,prevState, prevProps以及prevScrollHeight是从哪里得到的呢? 另外在handleNewMessage那里的prev又是从哪里得到的呢?我把它改成了this.state.Messages, 反而不是从20而是从0开始了。不太清楚为什么

作者回复: componentDidUpdate 是标准的组件 lifecycle 方法,prevState,prevProps 表示上一次 render 的状态和属性。而 prevScrollHeight 则来自 getSnapshotBeforeUpdate 的返回值。this.setState 可以接受一个函数作为参数,prev 就是上一个 state。可以参考官方文档:https://reactjs.org/docs/react-component.html#setstate

2018-12-16
2
5
草雨.路
老师, 我看react 16.6.3的文档(https://react.docschina.org/docs/state-and-lifecycle.html)里放的生命周期图解里面还有 componentWillReceiveProps, componentWillUpdate这两个方法, 但是却没有看见getsnapshotbeforeupdate和另外一个你讲的新方法, 所以感觉有点混乱, 你能否给一个现在最新的react生命周期图解呢

作者回复: 你看的中文文档没有及时更新,componentWillReceiveProps componentWillUpdate 都是过期的方法,未来版本会移除。建议以英文官方文档为主。

2019-01-19
4
Steven在学习
老师,handleNewMessagel 这个方法不用bind, 是怎么调到this的? 我在项目里,function都得在constructor里bind一下,才能调到this。

作者回复: 这是用的 class property 语法,属于考察期的语法规范,但是 babel 可以支持。method = () => {} 这种方式的类成员定义会自动绑定 this。

2018-12-11
3
dave-wind
老师你好,在SnapshotSample demo里 关于滚动条抖动问题 其实在render()里 messages map方法里给每个div加上 key 就好了 不需要用到getSnapshotBeforeUpdate生命周期 请问这么做和您这么写有啥区别呢?

作者回复: 加上 key 之后是浏览器的自动优化调整了 scrollTop。这里演示的是如果需要 update 前获取 dom 状态,那么需要用这个 api。

2018-10-10
3
tt716
componentWillMount现在已经去掉了么

作者回复: 是的,16.3 中已经去掉,同时去掉的还有 componentWillReceiveProps, componentWillUpdate

2018-06-24
2
老玉米
老师,为什么要加上这个 ref = { node => ( this.rootNode = node)} ,这个node 指的是什么?

作者回复: ref 可以获取原生节点的引用,这里的node 就是原生节点,存起来可供后续直接访问。

2018-11-20
1
Mavericker
老师您好问一下您的demo中state没有放在constructor里面写,而是直接使用this.state呢?

作者回复: 也可以放在 constructor 里,两者是一样的,如果 state 是直接生命的值,作为类的属性更加直观点。

2018-10-22
1
seamoontime
老师,这个PPT在哪啊。

作者回复: PPT 没有下载哦。

2019-08-16
收起评论