Chrome DevTools的模拟数据调试和工作区调试方法

Chrome DevTools的模拟数据调试和工作区调试方法

起因是公司的项目页面里面,有一个列表信息显示错误,在线和离线的显示跟实际的匹配不一致,想确认一下是请求问题还是页面判断问题,But 又不想打开项目调试,想着记得chrome某次更新版本的内容里面有mock调试功能的,捞起来看看。

在本地替换 Web 内容和 HTTP 响应标头

在Chrome DevTools的官方教程里面叫这个名称

开始前的提示:

  1. 新建一个空目录(也可以选择跳过,直接选择一个现有的目录)
  2. 关于权限的提示,全部选择允许

原理:

根据线上的请求地址和数据结构,同步在本地生成一份,发生请求的时候,直接请求本地的那一份数据。

秋野私认为的可以使用的场景

  1. 跟我需求用到的场景一样,调试一个在线网站或者一个生产环境的项目时,直接修改数据进行调试。
  2. 很多前端路由的项目,替换后端返回的路由菜单,如果接口权限没有控制的话,那你就可以访问到看不到的菜单了。
  3. 写文档或者标书的时候,需要定制一些页面数据,就不用截图再去P图了。

用乐橙云处理一个示例

打开网页链接地址,找到需要修改的请求。

image

查看确认一下数据是否正确

image

右击请求地址,选择替换内容

image

这时候在调试框上面会出现一个小小的提示,选择一个本地文件夹。

image

允许文件夹的权限,然后在选择的文件夹里面就会生成一个本地目录文件。

image

重新查看请求地址,启用了本地替换的请求会显示一个紫色的小标记。

image

修改一下本地的数据,重新刷新页面,页面的渲染效果就使用了本地的数据。

image

关闭的时候,直接把启用的勾去掉或者右键删除就行了

image

顺带摸索一下“工作区”功能

我们日常在devTools里面调试页面的时候,重新刷新页面了,那刚刚调试的数据就没有了。

工作区的概念,就是可以让你直接在浏览器里修改你项目里面的文件,并实时预览。

撸一个示例

create一个react的初始化项目

pnpm create vite demo

把项目添加到工作区,注意权限提示!

然后啥也不用管,直接build出来。用http-server启动dist目录

打开devtools的源代码-工作区。会看到dist里面文件有绿色的小标记。

pnpm build
http-server ./dist/

image

切换到元素,选择class=card的div,在工具里面给其设置上红色背景,注意此时css属性右侧的引用文件上也有绿色小标记。

image

操作完之后,刷新页面看看,是不是红色的背景属性依然存在。

image

此时可以大声的给产品喊:来,你想改啥颜色,你自己选择!

假设一个打包好的项目,没有源代码了,我们需要调整其内容怎么办呢,css和页面的调整,可以用刚刚上面的方法,JS行不行呢?

image

基于刚刚修改的状态,重新选择元素buttun,在DOM树一层层选或者直接右键定位元素都可。

$0 // 获取元素
document.querySelector("button") // 或者这样都可
// 然后.属性提示选择reactProps

image

打开控制台,键入命令获取当前元素

image

点击打印出来的事件,跳转到源代码工作区

image

修改他,然后刷新界面。再次点击按钮。NICE

image

上面是基于一个打包后的代码的调整修改操作,如果只是小改动,比之前我弄的反偏译那个方法方便多了。

当然要是基于开发模式,刚刚的工作区一样适用,只是没有好象必要。

image

收工!A Wonderful Day

image