前端开发调试 | 青训营笔记

78 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第10天

PC端

Chrome DevTools

  • elements
  • console
  • sources
  • memory
  • network
  • application
  • lighthouse
  • performance
  • ...

Elements

点击.cls,动态修改元素类名。

image.png

在下方动态修改元素样式。

image.png

对于伪类,我们可以通过右键中的强制改变状态来调试伪类效果。

image.png

或者选择:hov进行调试。

image.png

也可以在computed中动态搜索调试想要的效果。

image.png

console

在代码中添加了console,就可以直接在控制台看到所需要打印的数据,

  • console.log('Hello');
  • console.warn('Hello');
  • console.error('Hello');
  • console.debug('Hello');
  • console.info('Hello');
  • console.log('%s %o,%c%s', 'hello', { name: 'tom', age: 18 }, 'font-size:24px;color:red', 'Welcome to betydance!') image.png
  • console.time()
  • console.table():具象化展示JSON和数组

image.png

  • console.trace()
  • console.dir():通过类似文件树的方式展示对象属性

Source

用来展示项目源代码。 包括页面资源文件目录树,代码预览工具和Debug工具栏和断点调试器。 其中Debug工具栏从左到右依次为:

  • 暂停(继续)
  • 单步跳过
  • 进入函数
  • 跳出函数
  • 单步执行
  • 激活(关闭)所有断点
  • 代码执行异常处自动

代码debugger

这种使用方式也是很简单,直接在代码中需要断点的地方,直接添加代码debugger即可,当js执行到该语句的时候,会自动暂停,进而可以看到详细的信息,也可以一步步的调试代码。不过后面一定要删除该语句,否则有意外之喜。

浏览器断点

在浏览中断点和在代码中断点的操作原理一样,但是浏览器断电可以省去删除代码中bedugger的方式,F8可以直接跳转到下一个断点,F10可以单步骤调试,F11可以直接进入方法,也相当于单步调试了。

通过scope查看作用域,通过call stack查看调用栈。

也可以监听网络请求/DOM元素的断点。

source-map

前端代码天生具有“开源“属性,打包工具会对代码进行压缩和混淆,基本不可阅读,难以调试。

我们可以通过source-map进行映射,将源码与压缩后代码进行映射。

source-map中包含源码,压缩后代码带上source map上线后又不安全了,同时还增大了代码体积。

在实际开发中,项目打包时带上source map,之后将source map上线到另一个平台进行监控,而不是直接和压缩后源码一同上线。

Network

可以通过此界面查看网页发送的网络请求。 可以通过限制界面进行弱网适配。

image.png 对于列表中每个请求,可以点开查看详细信息。

Application

存储相关

image.png

Performance

性能面板,包括控制面板,概览面板,线程面板和统计面板。

image.png

性能问题解决思路:

  • 查看FPS指标
  • 发现性能瓶颈
  • 优化代码

LightHouse

展示的Web指标,并给出优化建议。

image.png 三个核心指标:

  • LCP Largest Contentful Paint:最大内容绘制(最好小于2.5秒)
  • FID First Input Delay:首次输入延迟(最好小于100毫秒)
  • CLS Cumulative Layout Shift:累计布局偏移(应保持在0.1或更小)

移动端

一般开发者工具里会有对应的调试工具,和PC端的差不多,真机调试的话需要用数据线连接两个设备,并且需要额外的插件进行调试。