GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing terry-su.github.io — 另辟蹊径搭建阅读React源码调试环境-支持所有React版本细分文件断点调试 另辟蹊径搭建阅读React源码调试环境-支持所有React版本细分文件断点调试
引言(为什么写这篇文章)若要高效阅读和理解React源码,搭建调试环境是必不可少的一步。而常规方法:使用
快速使用就像用手机并不一定要知道它的生产过程,使用源码调试环境也不一定要知道它的构建方法。 方法1: 线上调试
(推荐)方法2:下载对应直接调试源码文件此方法优势是可修改源码,比如在源码中添加注释。 使用步骤: 1 . 访问项目debug-react-source-code,选择要调试React版本对应分支,然后点击下载压缩包。
当前(2020/6/21)版本列表: 2 . 将压缩包解压后,用vscode打开该文件夹。vscode需安装Debugger for Chrome拓展,用于在vscode对源码添加断点 3 . 安装依赖后,开启服务 4 . 在源码中添加断点,按F5启动调试即可 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 背景正片现在开始。 接下来讲讲搭建该调试环境背景。React官方建议直接使用源码项目中创建生成的 但此方法无法看到每段代码所在具体源文件。最好的方案是能够直接调试源码中的细分文件。 其实之前网上可以找到实现此方案的方法,用webpack新建一个项目,然后想办法引入React源码中的各个模块,再添加各种配置,修改源文件以解决各种特殊情况。我之前也尝试过,但发现随着版本更新,该方法已逐渐不再适用,因为会遇到无法解决的特殊情况。 根本原因是因为React源码的打包配置较多,且含有自定义配置,所以即使给
但是,能够调试源码文件的确是刚需,怎么办呢? 实现方法于是,开始从其他突破口寻找解决方案。生成sourcemap的方案走不通,那通过 如果要生成各个细分文件,就需要它们的路径信息,在哪里添加? 既然react源码是通过 顺着这个思路,一番尝试后,发现有一两种特殊情况要处理,但最终目的成功实现!是的,目前所搭建调试环境就是使用此方法。 具体实现细节较复杂,这里先简单说下主要流程: 1 . 生成注入细分源码文件路径信息的 2 . 从 3 . 根据核心数据,新建react,react-dom对应html和主要html,使用iframe实现隔离react、react-dom代码作用域和使不同html能够通信。 衡量利弊此方法优点:
此方法缺点:
如何解决缺点?方法就是配合原始源码细分文件一起阅读,比如查看一个对象的类型结构。 但大多数情况下,此方法都适用。 具体实现本小节仅建议想了解此工具构建原理的同学阅读, 对于只需要获取调试环境的读者,可跳过此小节。 1 . 下载react源码,安装依赖项。 2 . 创建自定义 3 . 处理 4 . 基于核心数据,创建源码调试环境: 创建 其中, 完整内容建议感兴趣的同学直接阅读源码:debug-react-source-code。 预告下一篇将写React hooks的原理。Hooks的精髓往往不是的它的实现原理,而是设计理念。但弄懂React hooks原理,能让我们进一步加深对hooks思想和设计方式的理解。 感谢你的阅读。欢迎通过微信(扫描下方二维码)或Github订阅我的博客。
发布时间: 2020/6/21 分类: 技术\前端\React\debug react source code using special method.m 作者版权所有,转载请注明出处,禁止商业转载 版权 © 2017- 2025 苏溪云保留所有权利 |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |