壹 ❀ 引

React Developer Tools对于很多开发同学可能就是一个检查组件props传递对不对的工具,但事实上它的功能比我们想象的强大。比如我们日常排查问题,常常会遇到想知道某个页面某个组件是在哪个文件的第几行定义的。常规做法自然是搜索组件名,结合文件名称粗略定位,但其实React Developer Tools就能非常方便做到这一点,先看一眼效果图:

上图我选择了select组件,点击插件的open in editor后插件自动帮我打开了vscode且定位到了使用这个组件的具体行数(注意找的是使用这个组件的地方,而不是定义这个组件的地方),大概效果就是如此,在对于复杂且庞大的项目,这个操作真的能省去不少时间。

贰 ❀ 简单配置

有同学可能打开插件,然后发现为啥自己没open in editor这个按钮。对此我们只需要做两个操作,第一保证你的插件版本够新,目前我的版本是4.22.0,大家可以在管理扩展程序找到此插件,点击详情进行更新。

之后我们只需要在插件的设置中找到Components下的Open in Editor Url填入vscode://file/{path}:{line}即可(没错,就是它的placehoder),这时候你再选择组件,就会发现多了open in editor的按钮。

注意,目前此功能只能结合vscode使用,使用其它编辑器的同学可能需要等后续更新。

叁 ❀ 其它小技巧

叁 ❀ 壹 快速定位组件所在的DOM节点

介绍完跳组件的功能,简单说说其余几个也非常实用的功能,比如那个小眼睛的按钮,点击一下能帮你直接跳转所选中组价的DOM节点,在有时候修改组件样式做定位时,这个功能找DOM非常方便。

叁 ❀ 贰 控制台查看完整的组件信息

其实除了上面跳转编辑器快速定位使用组件的地方,还有一种笨方法,也能让我们知道这个组件是在哪个使用的,如下图:

选择组件,点击那个像蟑螂一样的图标,你会发现组件的props,当前功能使用这个组件的的文件位置信息,第几行第几列其实也能看到,肯定没有上面直接跳转方便,但也能提供部分帮助。

叁 ❀ 叁 查看某个组件在哪创建

上面说了我们想看这个组件是在哪用的,其实有时候我们也需要知道这个组件在哪个文件创建的。常规做法肯定是直接搜组件名,找同名的文件即可,但其实借用插件也能很方便做到,如下图:

上图我想知道Count组价是在哪个文件创建的,通过< >这个按钮直接跳转Source就是这个组件,然后复制绝对路径或者文件名,再去编辑器搜索即可。

除此之外还能根据$0.__来找到FiberNode,从而帮助我们获取组件的props以及组件创建、使用的文件,前提是你得选中组件对应的DOM,而正好小眼睛按钮已经能做到这一点。

在输入$0.__之后会有智能提示,大家可以看到下面的输出,选择输出FiberNode的回车即可,然后在_debugOwner中可以看到使用这个组价使用的位置信息,在_debugSource中可以看到这个组件定义的位置信息。

叁 ❀ 肆 控制台执行组件的props

我们排查客户问题,常遇到因为代码压缩不好定位代码具体位置,不方便断点,但是又想知道当前上下文情况下某个组件的方法到底是什么代码,以及执行这个方法得到的结果对不对,插件依旧能做到这一点:

比如Count组件接受了一个名为sayName的方法,通过这种做法我们能看到这个方法代码的全貌,以及在控制台调用它。某些时候,我们也能根据这个操作,比如函数内部的特殊的代码反向去定位代码所在的文件,总之也非常使用。

另外,本文展示所使用的项目来源自create react app,如果做了相同的配置但依旧没出现跳编辑器的按钮,可能跟打包工具配置有关,比如_debugSource输出为null也跟这个有一定关系等,关于插件一些小技巧就介绍到这,本文结束。

一键跳转组件所在的文件与具体行数,提升排查效率,分享几个 React Developer Tools 使用小技巧的更多相关文章

  1. 你不知道的React Developer Tools,20 分钟带你掌握 9 个 React 组件调试技巧

    壹 ❀ 引 React Developer Tools 是 React 官方推出的开发者插件,可以毫不夸张的说,它在我们日常组件开发中,对于组件属性以及文件定位,props 排查等等场景都扮演者至关重 ...

  2. 使用Eclipse可以方便的统计工程或文件的代码行数,

    使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expressi ...

  3. linux命令行快速统计文件(压缩文件)的行数

    统计(文件|压缩文件)的行数 zcat file.gz | sed -n '$='                                         #迅速.直接打印出多少行.-n 取消 ...

  4. python3 计算文件夹中所有py文件里面代码行数,注释行数,空行数

    import os,re #代码所在位置 FILE_PATH = './' def analyze_code(codefilesource): ''' 打开一个py文件统计其中的代码行数,包括空格和注 ...

  5. 6月16日 Django作业 文件解压缩统计行数

    作业要求: 前端页面注意: 自己写的: from django.shortcuts import render, HttpResponse import zipfile import re # Cre ...

  6. ubuntu输入某个目录测试该目录里.C文件里代码行数shell脚本

    #!/bin/bash echo "★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★☆ ★☆ ★☆★" echo "★☆       统计代码行数        ☆★&qu ...

  7. Linux查看文件总的数据行数,并按行拆分

    先利用 wc -l BLM.txt       读出 BLM.txt 文件一共有多少行. 再 1. 以行数拆分 -l 参数: split –l 50 原始文件 拆分后文件名前缀 例:以50行对文件进行 ...

  8. 获取当前方法名,行号,类名,所在java文件第几行

    public class Demo { public static void main(String[] args) { Demo demo = new Demo(); demo.go(); } pu ...

  9. 获取某个数据所在数据列表中的行数 mysql

    select * from (select @rownum := @rownum+1 as rownum,goods_idfrom table_goods, (select @rownum:=0) t ...

  10. python读取文件特定的行数

    from itertools import islice f=open("pyhpd.txt") for a in islice(f,2,6): print(a)

随机推荐

  1. java进阶(9)--数组

    一.基本概念: 1.数字为引用数据类型 2.数组实际上是一个容器,可以同时容纳多个元素 3.数组可存储基本数据类型,也可以存储引用数据类型的数据 4.数组一旦创建.长度不可变.且数组中元素类型必须统一 ...

  2. xshell配置隧道转移规则

    钢铁知识库,一个学习python爬虫.数据分析的知识库.人生苦短,快用python. xshell是什么 通俗点说就是一款强大ssh远程软件,可以方便运维人员对服务器进行管理操作,功能很多朋友们自行探 ...

  3. 基于java+springboot的酒店预定网站、酒店客房管理系统

    该系统是基于Java的酒店客房预订系统设计与实现.是给师弟开发的毕业设计.现将源代码开放出来,感兴趣的同学可以下载. 演示地址 前台地址: http://hotel.gitapp.cn 后台地址: h ...

  4. 8. exporter

    一.已经实现的收集器 1.1 可收集的内存指标 1.2 可收集的jetty指标 二.自定义收集 2.1 summer 2.2 histogram 三.架构设计 exporter作为Prometheus ...

  5. ABP微服务系列学习-微服务模板结构

    开源版本ABP CLI里面的模板是不包含微服务模板的,而商业版里面有一个微服务模板.这个模板据说是微服务的最佳实践,eShopOnAbp这个仓库的结构基本也和商业版的微服务模板一致.那就开始学习一下. ...

  6. pycharm等编辑器快捷键大赏

    1.序论 平时打代码的时候用鼠标在写代码的时候还行,代码一长就GG,快捷键便是我们的好选择 2.应用场景 1.问题一--选中一段指定区域 我想选中一段区域(我们一般用鼠标拖动),或者某一个标识符(光标 ...

  7. 他凌晨1:30给我开源的游戏加了UI|模拟龙生,挂机冒险

    一.前言 新年就要到了,祝大家新的一年: 龙行龘龘, 前程朤朤! 白泽花了点时间,用 800 行 Go 代码写了一个控制台的小游戏:<模拟龙生>,在游戏中你将模拟一条新生的巨龙,开始无尽的 ...

  8. 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.20)

    百度网盘会员账号共享(11.20更新) 账号:zqv29268 密码:7003wayb 账号:rpz75364 密码:riyk1648 账号:0580quqn 密码:148hxhe 账号:132620 ...

  9. [转帖]给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引

    https://zhuanlan.zhihu.com/p/142139541 MySQL的InnoDB索引数据结构是B+树,主键索引叶子节点的值存储的就是MySQL的数据行,普通索引的叶子节点的值存储 ...

  10. [转帖]Shell脚本数组(实现冒泡排序,直接选择排序,反转排序)

    目录 数组 数组定义方法 数组包括的数据类型 获取数组长度 读取某下标赋值 数组遍历 数组切片 数组替换 删除数组 追加数组中的元素 从函数返回数组 加法传参运算 乘法传参运算 数组排序算法 冒泡排序 ...