一键跳转组件所在的文件与具体行数,提升排查效率,分享几个 React Developer Tools 使用小技巧
壹 ❀ 引
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 使用小技巧的更多相关文章
- 你不知道的React Developer Tools,20 分钟带你掌握 9 个 React 组件调试技巧
壹 ❀ 引 React Developer Tools 是 React 官方推出的开发者插件,可以毫不夸张的说,它在我们日常组件开发中,对于组件属性以及文件定位,props 排查等等场景都扮演者至关重 ...
- 使用Eclipse可以方便的统计工程或文件的代码行数,
使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expressi ...
- linux命令行快速统计文件(压缩文件)的行数
统计(文件|压缩文件)的行数 zcat file.gz | sed -n '$=' #迅速.直接打印出多少行.-n 取消 ...
- python3 计算文件夹中所有py文件里面代码行数,注释行数,空行数
import os,re #代码所在位置 FILE_PATH = './' def analyze_code(codefilesource): ''' 打开一个py文件统计其中的代码行数,包括空格和注 ...
- 6月16日 Django作业 文件解压缩统计行数
作业要求: 前端页面注意: 自己写的: from django.shortcuts import render, HttpResponse import zipfile import re # Cre ...
- ubuntu输入某个目录测试该目录里.C文件里代码行数shell脚本
#!/bin/bash echo "★☆ ★☆ ★☆ ★☆ ★☆★☆★☆ ★☆ ★☆ ★☆ ★☆★" echo "★☆ 统计代码行数 ☆★&qu ...
- Linux查看文件总的数据行数,并按行拆分
先利用 wc -l BLM.txt 读出 BLM.txt 文件一共有多少行. 再 1. 以行数拆分 -l 参数: split –l 50 原始文件 拆分后文件名前缀 例:以50行对文件进行 ...
- 获取当前方法名,行号,类名,所在java文件第几行
public class Demo { public static void main(String[] args) { Demo demo = new Demo(); demo.go(); } pu ...
- 获取某个数据所在数据列表中的行数 mysql
select * from (select @rownum := @rownum+1 as rownum,goods_idfrom table_goods, (select @rownum:=0) t ...
- python读取文件特定的行数
from itertools import islice f=open("pyhpd.txt") for a in islice(f,2,6): print(a)
随机推荐
- [译] kubernetes:kube-scheduler 调度器代码结构概述
本文翻译自 https://github.com/kubernetes/community/blob/master/contributors/devel/sig-scheduling/scheduli ...
- Go 标准库 net
本篇文章主要介绍 Go 标准库中的 net 包,通过一个小例子介绍常用的 net 包函数/方法 Listen,Accept 和 Dial 等. 1. net 简介 Go 官网对 net 包的定义如下: ...
- docker 服务,镜像,容器命令总结
本文为博主原创,未经允许不得转载: 目录: 1. docker 服务相关命令 2. 镜像相关总结 3. 容器相关命令总结 1. docker 服务相关: 1. 查看docker版本及相关信息: doc ...
- React技巧之设置input值
原文链接:https://bobbyhadz.com/blog/react-set-input-value-on-button-click 作者:Borislav Hadzhiev 正文从这开始~ 总 ...
- Angular系列教程之管道
.markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...
- SV Clocking Review
clocking会设置input和output的延时 default input #3ns output #1ns 数据是在时钟上升沿驱动的,在时钟上升沿,将vld驱动到dut,dut中也会在时钟上升 ...
- 使用 golang 开发 PHP 扩展
使用 golang 开发 PHP 扩展 环境 golang go1.19.9 darwin/arm64 Macos/Linux PHP8.1.11 编译安装 实战 PHP脚手架生成 进入PHP源码,使 ...
- [转帖]JVM相关 - StackOverflowError 与 OutOfMemoryError
https://zhuanlan.zhihu.com/p/265039643 7 人赞同了该文章 本文基于 Java 15 StackOverflowError 与 OutOfMemoryErro ...
- [转帖]如何理解 kernel.pid_max & kernel.threads-max & vm.max_map_count
https://www.cnblogs.com/apink/p/15728381.html 背景说明 运行环境信息,Kubernetes + docker .应用系统java程序 问题描述 首先从Ku ...
- [转帖]CentOS7安装笔记:minio分布式集群搭建
文章目录 准备机器 部署(所有机器均执行) 创建挂载磁盘路径 挂载磁盘路径到文件系统 创建minio目录 下载minio安装包 创建启动脚本 创建启动服务 启动测试(所有机器执行) 重新加载服务的配置 ...