专栏名称: 前端大全
分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯
目录
相关文章推荐
前端早读课  ·  【第3452期】React 开发中使用开闭原则 ·  4 小时前  
启四说  ·  启四VIP策略网站,有哪些功能?如何使用? ·  15 小时前  
启四说  ·  启四VIP策略网站,有哪些功能?如何使用? ·  15 小时前  
前端早读课  ·  【第3451期】前端 TypeError ... ·  昨天  
江苏司法行政在线  ·  宿迁司法行政人、江苏监狱戒毒民警,给您拜年啦! ·  3 天前  
江苏司法行政在线  ·  宿迁司法行政人、江苏监狱戒毒民警,给您拜年啦! ·  3 天前  
51好读  ›  专栏  ›  前端大全

【干货】前端大佬是如何利用Devtools让自己开发飞起来的

前端大全  · 公众号  · 前端  · 2024-10-25 11:50

正文


作者:阮超民

原文地址:

https://www.ruanchaomin.com/blog/posts/244

作为开发人员,平时用的最多的就是Chrome Devtools了,但是可能很多同学平时用的最多也就只是Console和Elements面板了。

今天为大家分享一篇关于如何利用Devtools来帮助前端开发提高效率的实用技巧,学会让你开发事半功倍。

以下是原文:

前言

Chrome DevTools 是每位前端开发者的得力助手,它提供了丰富的功能和工具,帮助我们诊断和调试网页应用程序。本文将分享一些 Chrome DevTools 的调试技巧,在开发中提高效率。

2023年9月12日,Chrome 团队发布了 Chrome 117 桌面稳定版,本文将使用最新版本介绍。

模拟接口响应和网页内容

通过本地覆盖可以模拟接口返回值和响应头,无需 mock 数据工具,无需等待后端支持,快速复现在一些数据下的 BUG 等。在 DevTools 可以直接修改你想要的 Fetch/XHR 接口数据,还可以修改响应头,解决跨域等问题,不仅可以覆盖 Fetch/XHR,JS、CSS 等资源也可以。

本地覆盖其实在之前的版本就已经有了,需要在本地手动创建目录,步骤麻烦。 Chrome 117 对本地覆盖功能简化,现在可以直接在 Network 面板快速模拟远程资源的内容和响应头!如视频演示:


设置本地覆盖步骤:

  1. 打开 DevTools,导航至 Network 网络面板,右键单击要覆盖的请求,从下拉菜单中选择 Override content 或 Open in Sources panel。
  2. 如果是首次使用,未设置过本地覆盖文件目录,DevTools 会在顶部的操作栏中提示您选择一个文件夹来存储覆盖文件,并 “允许” 授予 DevTools 对其的访问权限(在 window 下选择了系统盘的文件夹测试发现用不了,可能是权限问题,建议选个非系统盘的文件夹)。
  3. 在 Sources 面板中修改数据,完成后按 Ctrl + S 保存,刷新页面,即可看见修改后的数据(被覆盖的资源在图标右下角会有个紫色的圆点)。
  4. 若要恢复使用服务上的数据,请导航到 Sources > Overrides ,可以点击取消 “Enable local overrides” 复选框,或者点击旁边的 Clear 图标,或者如上图演示中的单个删除。

它是怎么工作的?

  • 当你在 DevTools 中进行更改时,DevTools 会将修改后的文件的副本保存到您指定的文件夹中。
  • 当你重新加载页面时,DevTools 会提供本地修改后的文件,而不是网络资源。所以在旧版本支持 Override 的版本中,也可以手动创建一个文件来覆盖内容。

快速重发请求

在联调接口或者排查 BUG 的时候,经常需要重新再发一次请求,如果要重新操作一次复杂的交互、重新输入一大堆参数时,这种方式会显得比较麻烦。

这时候就可以通过 Replay XHR 来快速重发请求,如下图演示:

操作步骤:

  1. 导航至 Network 网络面板,右击一个 XHR 请求,可以点击 Fetch/XHR 过滤。
  2. 点击 Replay XHR。

在 Console 中发请求

针对上面同样的场景,有时候我们需要修改请求头、入参再重新发起请求,那么 Replay XHR 就不支持了。

可以通过 Copy as fetch ,在控制台修改请求参数,发起请求,如下图演示:

操作步骤:

  1. 导航至 Network 网络面板,右击一个 XHR 请求,可以点击 Fetch/XHR 过滤。
  2. 点击 Copy -> Copy as fetch。
  3. 导航至 Console 面板,Ctrl + v 粘贴。
  4. 修改内容,如接口 url、header、body, 然后按回车键即可发起请求。

条件断点

如果我们在某个循环中,希望循环到某个条件的时候在进入断点。
此时我们就可以使用 conditional breakpoint 如下图演示:

操作步骤:

  1. 右击代码行,点击 Add conditional breakpoint,或者按住 Ctrl + 鼠标左点击代码行。
  2. 输入条件表达式。

Add log point 为条件日志,可以不用在代码中写 console.log。

Console 中的 $

$0-$4

当要在 Console 中在调试页面元素时,比如要获取元素的信息,此时就可以使用 4。

$0: 当前选择的元素 ,**$1: 上一次的引用, $2:**上上次的引用,一直到 $4

例如获得某个元素相对于其 offsetParent 元素的顶部内边距的距离,演示如下:

操作步骤:

  1. 点击菜单栏第一个选择图标,或者使用快捷键 Ctrl + Shift + C 选择元素。
  2. 导航至 Console 面板,现在就可以使用 4,例如选择了两次,第一次选择的元素可以使用 0 访问。

$ 和 $$

$(‘xxx’) 相当于 document.querySelector(‘xxx’)  
$$(‘xxx’) 相当于 Array.form(document.querySelectorall(‘xxx’))

如下图演示:

$_

调试的过程中,经常需要打印一些变量值,但是如果想查看上一次执行的结果,使用 $_ 是对上次执行结果的引用。

$i

现在的前端开发过程,离不开各种 npm 包,如果我们要测试一个 npm 包,需要先在本地npm init,然后再 npm install xxx。

Console Importer 插件可以帮助我们,在控制台使用 $i(‘xxxx’) 进行装包,并进行调用。

Element 面板

隐藏 DOM Element

有时候我们想截图,但是想要隐藏图中的敏感信息,此时就可以隐藏元素,如下图演示:

操作步骤:







请到「今天看啥」查看全文