Chrome教程

Chrome DevTools 把我从调 bug 的地狱里拉出来了!

今天这篇来聊聊一个“被很多人低估到脚底板下”的前端神器——Chrome DevTools。

Image

讲真,我自己刚学前端那几年,对 DevTools 的理解就是: “按个 F12,看看报错,改改 CSS。” 结果后来真是啪啪打脸……现在要是离了 DevTools,我连个页面都调不顺。

所以这篇不是给 DevTools 入门的,是写给你已经知道它是调试工具,但还没意识到它有多强的兄弟姐妹们。DevTools,不是简单的“开发者工具”——它是前端调试、性能分析、协议追踪、PWA模拟、动画优化……的一站式战斗平台!用好了,它真的能封神!!!

下面我按我自己的使用习惯,给你把几个面板拆开讲讲,看完你绝对会说:“我X,这些功能我以前咋不知道?”

Image

1)Elements:调样式 + 改布局 + 模拟状态,一网打尽!

这块我最早用的也就查查 DOM,看看样式哪错了,点几下 class 名……就没了。

直到我做后台管理系统的时候,要调 hover、focus、:active 这些状态,我当时还傻乎乎写了 JS 模拟鼠标悬停,结果后来才知道:

👉 “Force element state” 直接一键设置 hover!

右键 DOM 节点,点 "Force state",选中 :hover,浏览器直接渲染悬停状态! 那一刻我直接人傻了……之前折腾那么久纯属多此一举。

还有,调 UI 的时候用它直接改 CSS 属性,然后手动拖 margin/padding,看哪个对齐最舒服,改着改着灵感就来了,根本不需要反复写 CSS -> 保存 -> 刷新……这效率提升得不是一点半点!

对了,想快速隐藏某个元素?点中 DOM -> $0.style.display = 'none',一行搞定!

Image

2)Console:不是报错台,是临时实验场!

以前我对 console 的印象就是:console.log('啊又错了')后来我才发现,它简直是浏览器内置的“REPL + 断点操作器”。

我经常用它干这些事:

  • 打点全局变量,验证状态是否对
  • 写小函数试逻辑,比如 arr.sort((a, b) => a-b) 直接跑
  • 还可以直接 fetch 接口数据,不进页面流程就能测接口响应

比如:

fetch('/api/user/info').then(res => res.json()).then(console.log)

配合 $0 ~ $4 快捷变量,真是爽飞了!

你在 Elements 面板选中的元素,会自动变成 $0,上一个是 $1……能保存最近选的 5 个元素,想调样式直接 $0.style.color = 'red'。 太牛了!!!这不是你手写 document.querySelector 那种傻操作能比的!

Image

3)Sources:从 log 小学生进化到断点 debug 选手!

我跟你讲个我踩坑的事。

几年前做一个地图组件,要等接口返回后动态渲染点标记。我怎么都调不通,log 打了一百个也没找出问题,最后是我一个同事说:

“你为啥不用断点调试?”

我当时心里翻白眼:“还不是因为我不会么?”

但我试了一次,真就打开新世界大门!!!

在 Sources 里设置断点,操作完页面,啪一下断住,Scope 变量一看——数据根本没进来,Promise 根本没 resolve!

Image

而且你知道 Sources 支持哪些断点吗?不仅是代码行断点,还有这些你可能没用过的宝藏功能:

  • XHR / Fetch 断点(接口请求触发)
  • DOM 断点(某个元素变化就触发)
  • 事件监听断点(按钮点击、input 改变等)

对了,还有 Call Stack 面板,能告诉你当前函数是怎么一步步被调用进来的,逻辑链一目了然! 这玩意儿对付异步嵌套、回调地狱,真的太香了!

4)Network:页面慢?接口挂?看它就对了!

Network 面板是我最爱用的工具之一,因为它直接告诉你两个事:

1)你的请求有没有发出去?(200 还是 500) 2)你卡在哪了?(Waterfall 图告诉你哪个资源拖了后腿)

那次我线上有个项目首页加载慢,log 一切正常。结果 Network 一看,第三方广告脚本加载了 10 秒!!!!! 当时我就改成懒加载 + 容错,页面一下子起飞!

还有这些功能真的不能错过:

  • 重发请求(右键 Resend) + 修改 header/body 参数测试
  • 过滤资源类型(JS/CSS/Media/XHR)快速定位问题
  • WebSocket 抓包,调聊天类应用神器!
    Image

对了,想下载页面图片或者视频资源?直接 Network 找 URL 拖进新标签页,别再瞎扒了。

有小伙伴私信我想要RPA编程教程,我最近找到了一个免费学习RPA网站,提供给大家免费学习。

完全免费:songshuhezi.com/rpa.html

5)Performance:性能掉帧、内存泄漏全靠它!

说句实话,这个面板我一开始真看不懂,录个性能后拉出一堆 CPU 图、Frame 图、GC、Paint、Layout……直接给我整懵了。

但!后来我在调一个动画卡顿问题时,咬牙学了它。

结果惊呆了!

Image

我发现动画卡顿的根源不是 JS,而是因为 :nth-child 写太多,导致浏览器反复 Recalculate Style,每一帧都在重新渲染!

换成 class 之后立马不卡了!这不就是传说中的“写得对,性能飞”吗?

性能面板能告诉你:

  • 哪段代码占了大量 JS 执行时间
  • 哪个 DOM 操作引发了重排或重绘
  • 哪次 GC 卡了一下你的页面

我后来写 WebGL 项目的时候全靠这个调帧率,稳定在 60FPS!

6)Application:PWA、缓存、离线调试,它全包了!

这块其实很多人压根没点进去过,但我告诉你:

只要你做过登录态校验、缓存控制、离线功能,这里全是宝藏!

像这些操作我常用:

  • 看 localStorage / sessionStorage / cookie 当前状态
  • 检查 IndexedDB 里的结构(新版本 UI超好用)
  • 管理 Service Worker,模拟离线 + 清缓存
  • 查看 cacheStorage,调试 PWA 静态资源缓存

之前我们项目搞 PWA,有个 bug 是缓存资源旧版本不更新,最后就是在 Application 里找出来的。

Image

7)Security & Lighthouse:安全证书 + 性能评分辅助神器!

Security 我之前觉得没啥用,直到有一次线上 HTTPS 证书挂了,老板让我查。

我点开 Security 面板一看:“证书无效,原因:缺失链条证书” 直接截图甩过去,十分钟修复上线!

Lighthouse 就更别说了,一键分析页面性能、可访问性、SEO、PWA 支持情况,每项都有详细优化建议。

兄弟们,你离成为真·前端高手,也许就差一次认真把 DevTools 点一遍!

感兴趣的朋友可以试试,有问题欢迎交流,我们下篇再见👋!

-END-
点击下方公众号,回复关键词 chrome,即可获取对应插件