React Hooks 核心原理与实战
王沛
eBay 中国研发中心资深技术专家
新⼈⾸单¥59.9
1247 人已学习
课程目录
已更新 16 讲 / 共 23 讲
0/2登录后,你可以任选2讲全文学习。
开篇词 (1讲)
开篇词 | 全面拥抱 Hooks,掌握最新 React 开发方式
免费
基础篇 (7讲)
01|认识 React:如何创建你的第一个 React 应用?
02|理解 Hooks:React 为什么要发明 Hooks?
03|内置 Hooks(1):如何保存组件状态和使用生命周期?
04|内置 Hooks(2):为什么要避免重复定义回调函数?
05|进一步认识 Hooks :如何正确理解函数组件的生命周期?
06|自定义Hooks :四个典型的使用场景
07|全局状态管理:如何在函数组件中使用 Redux?
实战篇 (8讲)
08|复杂状态处理:如何保证状态一致性?
答疑解惑01|如何转换应用React Hooks 的思路?
09|异步处理:如何向服务器端发送请求?
10|函数组件设计模式:如何应对复杂条件渲染场景?
11|事件处理:如何创建自定义事件?
12|项目结构:为什么要按领域组织文件夹结构?
13|Form:Hooks 给 Form 处理带来了哪些新变化?
14 | 使用浮动层:如何展示对话框,并给对话框传递参数?
React Hooks 核心原理与实战
15
15
1.0x
00:00/00:00
登录|注册

12|项目结构:为什么要按领域组织文件夹结构?

你好,我是王沛。今天我们来聊聊如何组织项目文件夹结构。
很多同学在做项目开发时都会有这样的体验:项目初期,做得爽,进展快。但等功能做得差不多了,比如已经完成 90%,会突然感觉进展慢下来了。在剩下 10% 的功能开发上花的时间,可能比前面做 90% 的功能还要多。
这种现象,有人称之为“90-90 定律”。这就导致我们很难预估项目究竟什么时候才能做完。
产生这个现象的原因是多种多样的,但其中一个很重要的原因就在于,随着功能的增加,项目会变得越来越复杂。而在项目的后期,每增加一个新功能,或者修改已有的一些功能,都会带来很大的工作量。毕竟在做这些新的改动时,你需要考虑它们会对已有的功能产生什么影响。
而要改善或者解决这个问题,关键就在于:每增加一个新的功能,整个应用程序的复杂度不应该明显上升。这样才能保证我们的应用程序始终可扩展,可维护。
那么怎么在 React 应用中做到这一点呢?这正是我们这节课要讨论的问题。

软件复杂度的根源:复杂的依赖关系

我们经常会说,某个项目看上去好复杂。那么这个“复杂”,到底该怎么定义呢?
如果仔细思考就会发现,当某个功能需要层层嵌套的模块依赖,那么即使开发时觉得思路很顺,但是自己再回头去看,或者要让别人理解某个功能实现,就不得不去翻阅很深的调用链。这就是让你觉得复杂的直接原因。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《React Hooks 核心原理与实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言(6)

  • 陈好人
    用一个注册的方式实现控制反转,确实是可以避免硬链接。不过有另一个问题,比方说我就不能直观看到article的组成了,同时,调试上会不会引来新的复杂度?

    作者回复: 关于 article 的组成,在我们项目中会有静态的分析工具,能够直观的看到一个扩展点被哪些模块进行了扩展。也能看到一个 feature 内部,使用了哪些扩展点。所以这个问题是可以解决的。

    在调试上,因为扩展点本身和 article view 这个组件是几乎没有直接联系的,只是通过传递了一些参数。所以调试时只需要调试扩展模块就可以了,实际的使用不会有调试上的困难。

    2021-06-22
    1
    4
  • ༺程༻
    js-plugin的用处感觉比较大。
    但是在react组件中,<Extension name="article.footer" args={article} /> 这样的写法,确实我不太能理解。就像是一个容器组件,通过传入不同的参数,返回不同的组件。因为我使用ts,感觉这样又少了类型检擦。
    2021-06-22
    1
  • 琪琪
    这章没看懂呢 老师
    2021-06-24
  • 喵咪爱吃肉
    老师,这个演示结构我还是不能太理解,能否给一个具体的项目做示例呢?
    2021-06-24
  • 何用
    Extension Point 可以用广告位招租形象地解释
    2021-06-23
    1
  • 何用
    extension point 的思路可以,将事件通信的机制用在了组件渲染的场景。register 就好比注册事件,Extension 就好比派发事件,依次将register的组件渲染在指定区域,但也不无缺点,比如对类型支持不友好
    2021-06-23
    1
收起评论
6
返回
顶部