博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过React Fiber本身的测试用例,一步一步调试它的源代码,直观感受下它的运行机制...
阅读量:5745 次
发布时间:2019-06-18

本文共 1366 字,大约阅读时间需要 4 分钟。

大家都知道,React Fiber是React全新的Reconciler(Reconciler就是我们通常所说的Virtual DOM,用来计算新老View的差异。

在我们看完N多大神对它的解释后,但是如果不亲自调试下它的源代码(全新用ES6写了),说实话我心里还是想说(「Talk is cheap. Show me the code」)^_^。

我们在作者提供的"PULL_REQUEST_TEMPLATE.md",有看到如何调试,见下图:

可是可以,它需要打开chrome来弄,还需要先在测试用例中写个debugger,Source Map也需要弄等等。

那我们该如何在ES6的源代码中直接下断点调它呢?估计大家想到了,最好的方式就是祭出VSCode这个神器。

但还是要些许配置,才能跑起来。因为它的单元测试都是Jest写的,所以我去它的官网去找Debugging in VS Code。但很遗憾作者给出的不试我们想要的。不过,不用担心。VSCode官网部分有提供一个仓库,里面有各种基于VSCode调试的项目例子。

我们找到。先上个图感受下。

好是好,但我们的源代码是ES6,并且有import,所以还需要在args里面加上babel-register。

那么最终的launch.json配置是:

{  "version": "0.2.0",  "configurations": [    {      "type": "node",      "request": "launch",      "name": "Jest Current File",      "program": "${workspaceRoot}/node_modules/jest/bin/jest",      "args": [        "babel-register",        "${file}",        "--config",        "./scripts/jest/config.source.js",        "--runInBand"      ],      "console": "integratedTerminal",      "internalConsoleOptions": "neverOpen",      "env": {        "NODE_ENV": "development"      }    }  ]}复制代码

是不是很简单,--config--runInBand的用法在有详细说明。在这里我是直接把react项目本身package.json里面scripts部分的debug-test配置直接移过来的,没啥其它:

"debug-test": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source.js --runInBand"

好,现在我们在这个由1000多位大神所贡献的项目中随便找一个有setState的测试用例,下个断点,按F5执行一下:

OK,搞定!

最后,祝大家生活愉快!

转载地址:http://qnazx.baihongyu.com/

你可能感兴趣的文章
lr场景运行报错的解决方法
查看>>
如何实现4分频?
查看>>
Cordova4.0 系列 -- 基本环境搭建(1)
查看>>
muduo网络图书馆评测
查看>>
VC获得window操作系统版本号, 获取操作系统位数
查看>>
新浪微薄份额2(分享)
查看>>
AndroidStudio调用so文件
查看>>
企业退信的常见问题?
查看>>
【转】Android自动化测试之MonkeyRunner录制和回放脚本(四)
查看>>
(转)如何判断链表中是否有环
查看>>
Android正在使用Handler实现消息分发机制(零)
查看>>
Exchange Cards(dfs)
查看>>
[转载]Linux Bond的原理及其不足
查看>>
如何在面试中发现优秀程序员
查看>>
Serial Wire Viewer (SWV)
查看>>
2015腾讯笔试大题
查看>>
hive的udf制剂
查看>>
收集一些特殊的符号
查看>>
VisualC++2012 Compiler Warning C4566
查看>>
Edit Distance -- LeetCode
查看>>