当前位置: 首页 > news >正文

《图解Vue3.0》- 调试

如何对vue3项目进行调试

调试是开发过程中必备的一项技能,掌握了这项技能,可以很好的定义bug所在。一般在开发vue3项目时,有三种方式。

  • 代码中添加debugger;
  • 使用浏览器调试:sourcemap需启用
  • vs code 调试:先开启node服务,后启用vs code的调试模式

具体使用如下:

debugger调试法

当打开开发者模式时才会起作用(F12), 但是使用完之后将其删除,不然遗留在代码中,不利于自己与他人开发。一般配置文件,也不允许其出现,.eslintrc.json, rules: "no-debugger":"error"

<template><div>请求数据:{{ loginMsg }}</div><button @click="loginBtn">点击获取mock数据</button>
</template>
<script lang="ts" setup>
import { ref } from "vue";
import axios from 'axios';const loginMsg = ref('');const loginBtn = () => {debugger;axios.get('api/test').then((res) => {loginMsg.value = JSON.stringify(res);});
};</script>
0a857ca33f3c1bd8be49393d3bd49cfc.png

浏览器调试法

在浏览器中调试是最常见的一种方式,即使部署了代码,只要将sourcemap打开(vite.config.ts->build->sourcemap: true,)即可。一般生产环境会将其关闭。

我们在开发vue3的时候, 如果借用浏览器调试的话,需要安装一个浏览器插件:vue developtools。

这里仅说明如何调试与vue3相关的,其他还有关于dom/css等相关的调试修改,不在此处赘述。

具体使用如下:

调试JS代码

找到source中的文件,提前打好断点,然后触发事件:

14492f1e58336624031487f7cc4a8696.png

调式vue3组件

如果想看vue3各个组件的prop,data,pinia数据等,这里就需要借用vue developtools插件了。在这里,我们也可以对components中的数据进行修改,也会触发界面的重新渲染。

ea5b0414dd9ca0c088fd5137c35608cb.png

vs code调试法

→ 启动项目服务
→ 启动vs code调试(F5)
→ Wab App(Chrome)
→ 修改配置文件, launch.json这里的url里面的端口,就是启动服务的端口

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"type": "pwa-chrome","request": "launch","name": "Launch Chrome against localhost","url": "http://localhost:3000","webRoot": "${workspaceFolder}/src","sourceMaps": true,}]
}

→ F5, 启动调试
这时会重新打开一个浏览器并打开当前的服务。

→ 在vs code中打断点,在浏览器中使用触发事件。

40fbfff1d80c7b5c5af05ef00f09c169.png

 

相关文章:

  • QT的安装
  • 【二分查找】Leetcode x 的平方根
  • OpenCV项目实战-深度学习去阴影-图像去阴影
  • Chatgpt掘金之旅—有爱AI商业实战篇|社交媒体管理|(七)
  • unity工程输出的log在哪里?
  • 手动实现Tomcat底层机制+自己设计Servlet
  • 倒三角形的两种输出方法
  • MES实施之工控机和电脑的选择
  • 条件变量的使用(golang)
  • 计算机网络-TCP重传、滑动窗口、流量控制、拥塞控制
  • 解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题
  • 【北邮国院大三下】Cybersecurity Law 网络安全法 Week1【更新Topic4, 5】_cyber security la
  • 12.自定义的多帧缓存架构
  • 【PostgreSQL】技术传承:使用Docker快速部署PostgreSQL数据库
  • 游戏引擎中的物理系统
  • [译]CSS 居中(Center)方法大合集
  • 【347天】每日项目总结系列085(2018.01.18)
  • C++类的相互关联
  • Django 博客开发教程 16 - 统计文章阅读量
  • fetch 从初识到应用
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • V4L2视频输入框架概述
  • Vue UI框架库开发介绍
  • 读懂package.json -- 依赖管理
  • 机器学习中为什么要做归一化normalization
  • 人脸识别最新开发经验demo
  • 实战|智能家居行业移动应用性能分析
  • 使用parted解决大于2T的磁盘分区
  • 用element的upload组件实现多图片上传和压缩
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 阿里云ACE认证之理解CDN技术
  • (12)Hive调优——count distinct去重优化
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (a /b)*c的值
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (C++)八皇后问题
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (太强大了) - Linux 性能监控、测试、优化工具
  • (转)fock函数详解
  • ***检测工具之RKHunter AIDE
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • ..回顾17,展望18
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 使用ajax控件后如何调用前端脚本
  • .Net 知识杂记
  • .NET开发人员必知的八个网站
  • .NET命令行(CLI)常用命令
  • .net网站发布-允许更新此预编译站点
  • :not(:first-child)和:not(:last-child)的用法
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @Resource和@Autowired的区别