当前播放: 07 | 组件设计模式 : 高阶组件和函数作为子组件
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进行性能调优
07 | 组件设计模式 : 高阶组件和函数作为子组件

07 | 组件设计模式 : 高阶组件和函数作为子组件

王沛
eBay中国研发中心资深技术专家
46讲 45课时·约560分钟6328
单独订阅¥199
2人成团¥89
28
本节摘要
展开
登录 后留言

精选留言(16)

  • 叶楠
    这位老师讲的很棒!
    2018-06-19
    14
  • liqiang0335
    老师讲课非常赞,阐述清晰易懂,简洁明了,不得不评论一下,希望有更多的其他教程!

    作者回复: 谢谢支持!

    2018-07-15
    7
  • 一条安达鲁狗__
    希望老师可以开更多前端技术的课程,讲得太棒了

    作者回复: 感谢支持!

    2018-11-13
    3
  • xuwei
    感觉老师讲的很精炼
    2018-10-08
    3
  • senekis
    老师,没能明白函数子组件是怎么回事?没看到children在哪里被赋值了啊?

    作者回复: children 是 React 组件的一个特殊内置属性,<Comp>xxx</Comp> 里的 xxx 部分会作为 children 传递给 Comp 组件,如果 xxx 是函数,那么 Comp 里主动调用它去得到结果。

    2019-08-10
    2
  • Geek_f532ae
    讲的很好,以前完全理解错了高阶组件
    2019-01-26
    1
  • 渴望做梦
    老师,函数作为子组件的优势没太明白,不用函数普通子组件不是也可以根据props来过定制渲染效果吗?

    作者回复: 函数子组件相当于向外暴露了 render 逻辑,所以更灵活。

    2019-11-03
  • dust
    函数子组件类似于 Vue 中的 Slot
    2019-10-01
  • dust
    高级组件的本质其实就类似于 Java 中的装饰器模式和 Python 中装饰器,都是为了扩展现有对象的功能
    2019-10-01
  • 萌小萌
    require(`./img/${animal}`) 这块不会有问题吗?
    require不能动态拼接吧。

    作者回复: 这个 require 是 webpack 打包时处理的。webpack 会自动扫描 img 目录下的所有文件并打包进去。从而运行时能够动态引入。当然,这种方式不能滥用,避免打包进不需要的文件。

    2019-07-30
  • 不白吃飯
    export default withTimer(ChatApp); 这里只是导出了一个匿名class,而这个匿名class的render()还没有被调用。为什么ChatApp中的render()方法里可以这样使用:<h2>{this.props.time.toLocaleString()}</h2>。
    2019-06-30
  • LWP
    一目了然,比官网解释的还要好
    2019-05-01
  • Mac Kwan
    想到一个应用场景。假如我编写一个卡片card的组件,里面会有卡片头,卡片身体,卡片脚三个子组件。我是否有方法能使用函数作为子组件的形式在card这个组件下分别传递三个函数到卡片头,卡片身体以及卡片脚呢?
    2019-03-08
  • 小妖精
    很赞
    2019-01-19
  • 小小白
    请问老师在示例代码【return class ?? extends React.Component 】中问号处没有类名呢?类名不写时其类名是什么呢?

    作者回复: 相当于返回了一个匿名的类,class 的作用是声明一个类,并不一定需要名字。和匿名函数 return function() {} 是一样的原理。

    2018-12-11
  • Geek_0b2691
    老师,函数子组件的方式感觉和vue的slot很像,那如果想要嵌入多个子组件,除了设置多个props,还有其他方法吗?

    作者回复: 既然是函数,就可以返回任意类型的数据,比如多个组件的hash,然后在容器组件内部决定每个组件用在哪个地方。

    2018-11-14
收起评论
看过的人还看
左耳听风

陈皓  网名“左耳朵耗子”,资深技术专家,骨灰级程序员

108讲 | 40807 人已学习

拼团 ¥199 原价 ¥299
趣谈网络协议

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

51讲 | 40035 人已学习

拼团 ¥79 原价 ¥99
重学前端

程劭非(winter)  前手机淘宝前端负责人

58讲 | 33179 人已学习

¥99
玩转webpack

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

84讲 | 5519 人已学习

拼团 ¥79 原价 ¥99