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

109 阅读4分钟

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

本堂课重点内容

本堂课重点讲述了前端开发在PC端和移动端的调试。

前端开发调试之PC端

前端Debug特点:多平台、多环境、多工具、多技巧。

Chrome DevTools

是浏览器自带的调试工具,右键鼠标——选择检查,DevTools每个板块含义及功能:

  1. Elements
  • 查看元素和样式,并且可以对其进行动态修改和更新
  • 可以在右侧Computed部分查找想要修改的属性样式
  • 小技巧:选中想要的标签,右键选择Captured node screenshot,可以将选中的标签部分截图
  1. Console
  • 查看打印的调式日志信息

  • 可以给日志添加样式

    console.log('%s %o, %c%s','hello',{name:'tome',age :18} ,'font-size: 24px; color: red','Welcome to bytedance!');

    %s - 字符串占位符;%o - 对象占位符;%c - 样式占位符;%d - 数字占位符

  • 日志等级

    • console.log
    • console.warn
    • console.error
    • console.debug
    • console.info
  • 输出的不同类型的值颜色是不一样的,比如字符串是默认颜色,数字是蓝色

  • console.table 具象化的表格形式展示 JSON 和 数组数据

  • console.dir 通过类似文件树的方式展示对象的属性,可以在查看DOM元素属性的时候使用

  1. Source 111.png
  • 在Page可以查看源代码
  • 使用断点调试方法:
    • 在需要断点调试的地方加上一行代码:debugger;
    • 在Source界面直接选中想要断点调试的代码行
    • 观测变量的值:在代码中鼠标选中想要观测的变量,或者在右侧使用Watch查找变量
  • 区域4:断点调试器
    • Scope 查看作用域列表(包含闭包)
    • Call stack 查看当前JS代码的调用栈调用栈
    • XHR/fetch Breakpoints 所有请求的断点
    • DOM Breakpoints 当html元素变化的时候,可以给它添加断点
  • 压缩后的代码如何调试
    • 使用source Map,把调试的地方与源码映射,见www.murzwin.com/base64vlq.h…

      • 在webpack.prod.js开启source-map
      module.exports = {
          ...
          devtool: 'source-map',
          ...
      }
      
      • bundle.js.map
      • 思考:既然 Source Map可以映射源码那压缩后的代码带上Source Map上线不就又不安全了吗?
        • Source Map的常用场景是监控,在项目上线时一般是不上线Source Map的,一是为了安全,二是减少代码体积;在项目打包的时候会带上Source Map去bundle,产物里面是有Source Map的,在上线之前将Source Map上传到另一个平台,如监控平台,上传后就把Source Map文件删除,再上线不带Source Map文件的项目,这样别人看到的代码就是打包混淆后的。
  1. Network
  • 显示站点在请求时加载的各种各样的资源
  • 在“No throttling”选择模拟的弱网环境
  • 在Name列表找到想要的对应接口并打开,在Preview和Response可以查看后端返回的结果是否符合预期
  • Headers 显示所有的请求相关信息
  1. Application
  • 展示与本地存储相关的信息
  • Storage 点击 Clear site data,一键清除所有本地信息
  1. Performance 222.png
  • 展示网页性能相关信息
  • 解决性能思路:页面卡顿 => 查看FPS指标 => 寻找性能瓶颈 => 优化代码
  • 查看FPS指标:Frames 每一帧的渲染情况
    • fps低于60就说明有点卡了(丢帧)
    • 点击到Main部分,点击实心圆点进行重新录制,就能看到有一些红色小三角,点击去查看
  • Performance运用实例:googlechrome.github.io/devtools-sa…
  1. Lighthouse
  • 方便我们查看网页性能情况,点击“Analyse page load”开始性能分析
  • 衡量Web站点性能的核心指标(核心Web指标)
    • LCP
    • FID
    • CLS

333.png

前端开发调试之移动端

  1. 真机调试 444.png
  2. VConsole 与PC端的Chrome DevTools很相似
  3. 使用代理工具调试 常用的有:
  • 查看、控制网络请求、分析数据:Charles、Fiddler(适合windows)
  • 远程调试、抓包:spy-debugge
  • 基于Node的跨平台调试:Whistle

555.png 4. Node.js调试

  • 可以直接使用官方提供的方法: Inspector Protocol + Chrome Devtool 666.png
  • 可以结合浏览器和编译器使用:Inspector Protocol + VS Code
  1. 前端常用的开发调试技巧
  • (1)线上即时修改Overrides 777.png
  • (2)利用代理解决开发阶段的跨域问题
  • (3)启用本地source map
  • (4)使用代理工具Mock数据
  • (5)小黄鸭调试大法:向他人一行一行解读自己的代码

个人总结

这门课所学知识我们进行前端开发的时候非常实用,方便我们对代码进行调试和优化,可以高效查找bug和动态调整样式,提高我们的开发效率。

图片来源(侵删):

前端开发调试之 PC 端调试 - 掘金

前端开发调试之 移动端 端调试 - 掘金