作为开发人员,平时用的最多的就是Chrome devtools
了,但是可能很多同学都像我一样平时用的最多也就只是Console
和Elements
面板了。
我整理了一些我平时用的比较多的一些调试小技巧,相信对提高你的工作效率能起到不小的帮助!
Command
) 菜单 🏈“命令”菜单是最最常用的,本文也会多次用到,所以这里先说一下打开方式:
按Cmd + Shift + P
(如果使用Windows
,则按Ctrl + Shift + P
)打开“命令”菜单。
DOM
元素 🏉当你只想对一个特别的 DOM
节点进行截图时,你可能需要使用其他工具弄半天,但现在你直接选中那个节点,打开 命令(Command
) 菜单并且使用 节点截图
就可以了。
截取特定节点对应上图命令是Screenshot Capture node screenshot
。
截取特定DOM
元素示例:
不只是这样,你同样可以用这种方式 实现全屏截图
:通过 Screenshot Capture full size screenshot
命令。
请注意,这里说的是全屏,并不只是页面可视区域,而是包含滚动条在内的所有页面内容。
对应截取全屏示例:
我是最近才发现这个技巧。使用$_
可以引用在控制台执行的前一步操作的返回值。如果您正在控制台调试一些JavaScript
代码,并且需要引用先前的返回值,那么这可能非常方便。
xhr
请求 🚀在平时和后端联调时,我们用的最多的可能就是Network
面板了。但是每次想重新查看一个请求,我们往往都是通过刷新页面、点击按钮等方式去触发xhr
请求,这种方式有时显得会比较麻烦,我们可以通过google
提供的Replay XHR
的方式去发起一条新的请求,这样对于我们开发效率的提升是有所帮助的。
在控制台输入document.body.contentEditable="true"
或者document.designMode = 'on'
就可以实现对网页的编辑了。
其实这个还是比较实用的,比如你要测试一个DOM
节点文字太长时,样式是否会混乱,或者要去直接修改页面元素去满足一些业务需求时。(我之前是在Elements
面板一个一个去修改的,,,)
Network
)的幻灯片模式 🌇启动Network
面板下的Capture screenshots
就可以在页面加载时捕捉屏幕截图。有点幻灯片
的感觉。
单击每一帧截图,显示的就是对应时刻发生的网络请求。这种可视化的展现形式会让你更加清楚每一时刻发生的网络请求情况。
DevTools
中有一个动画面板,默认情况下它是关闭的,很多人可能不太清楚这个功能。它可以让你控制和操纵 CSS
动画,并且可视化这些动画是如何工作的。
要打开该面板,可以在 DevTools
右上角菜单 → More tools
中打开 Animations
:
默认情况下,DevTools
会“监听”动画。一旦触发,它们将被添加到列表中。你能看到这些动画块如何显示。在动画本身上,DevTools
会向我们展示哪些属性正在更改,例如 background-color
或 transform
。
然后,我们可以通过使用鼠标拖动或调整时间轴来修改该动画。
作为前端开发,平时少不了通过Elements
面板去查找元素以及它的css
样式。有时调整像素px
会比较麻烦一点,这时就可以使用快捷键去帮你完成:
* 增量0.1 * Mac: Option +向上和Option +向下 * Windows: Alt +向上和Alt +向下 * 增量1 * Mac:向上+向下 * Windows:向上+向下 * 增量10 * Mac:⇧+向上和⇧+向下 * Windows:⇧+向上和⇧+向下 * 递增100 * Mac: ⌘+向上和⌘+向下 * Windows: Ctrl +向上和Ctrl +向下
我们平时开发一般都是在办公室(wifi 网速加快),而且设备一般都是市面上较新的。但是产品的研发和推广,一定要考虑低设备人群和弱网的情况。
在Chrome DevTools
中可以轻松调节CPU
功能和网络速度
。这样,我们就可以测试 Web 应用程序性能并进行相应优化。
具体打开方式是:在Chrome DevTools
中通过CMD/Ctrl + Shift + p
打开命令菜单。然后输入Show Performance
打开性能面板。
在调试的过程中,我们总会有对 Dev Tools
里面的数据进行 复制
或者 保存
的操作,其实他们也是有一些小技巧的!
可以通过全局的方法 copy()
在 console
里 copy
任何你能拿到的资源
如果在console
中打印了一堆数据,想对这堆数据做额外的操作,可以将它存储为一个全局变量。只需要右击它,并选择 “Store as global variable”选项。
第一次使用的话,它会创建一个名为 temp1
的变量,第二次创建 temp2
,第三次 ... 。通过使用这些变量来操作对应的数据,不用再担心影响到他们原来的值。
大家平时用的最多的Chrome 主题
可能就是白色/黑色这两种了,但用的久了,难免想尝试像IDE
一样切换主题。
首先需要启用实验模式中的Allow custom UI themes
url
chrome://flags/#enable-devtools-experiments # 启用实验功能
F1
打开设置,切换到Experiments
选项Allow custom UI themes
Chrome
商店安装Material DevTools Theme Collection
扩展程序Chrome DevTools
中的Coverage
功能可以帮助我们查看代码的覆盖率。
shift+command+P (mac)
输入 Show Coverage
调出相应面板reload
按钮开始检测在平常开发过程中,我们经常有些 JavaScript
的代码想在 Chrome Devtools
中调试,直接在 console
下 写比较麻烦,或者我们经常有些代码片段(防抖、节流、获取地址栏参数等)想保存起来,每次打开 Devtools
都能获取到这些代码片段,而不用再去google
,正好Chrome Devtool
就提供了这种功能。
如图所示,在 Sources
这个tab
栏下,有个 Snippets
标签,在里面可以添加一些常用的代码片段。
Network
面板Img
URI
(已编码为base 64
)媒体查询是自适应网页设计的基本部分。在Chrome Devtools
中的设备模式
下,在三圆点菜单中点击 Show Media queries
即可启用:
Devtools
会在样式表中检测媒体查询,并在顶端标尺中将它们显示为彩色条形:
那怎么使用呢?其实也很简单:
CSS
中何处定义并跳到源代码中的定义这个是Devtools
提供的快速查看一个对象的key
、values
的API
。用起来也很简单:
你可能会说Object.keys()
和Object.values()
也可以实现啊,但这个不是更简单点吗 🤠
Devtools
提供的用于将对象数组记录为表格的API
:
1.如果觉得这篇文章还不错,来个分享、点赞、在看三连吧,让更多的人也看到~
2.关注公众号前端森林,定期为你推送新鲜干货好文。
3.特殊阶段,带好口罩,做好个人防护。
4.添加微信fs1263215592,拉你进技术交流群一起学习 🍻