玩转 Vue 3 全家桶
大圣
前百度前端架构师
38321 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
玩转 Vue 3 全家桶
15
15
1.0x
00:00/00:00
登录|注册

12 | 调试:提高开发效率必备的Vue Devtools

Router页面
Vuex页面
Components页面
Console页面
Elements页面
安装
Lighthouse插件
Performance页面
Network页面
Application页面
Source页面
Console页面
Elements页面
思考题
Vue Devtools的使用
Chrome Devtools的使用
lighthouse插件
Performance页面录制
debugger关键字
Vue Devtools
Chrome Devtools
总结
性能相关的调试
断点调试
调试工具

该思维导图由 AI 生成,仅供参考

你好,我是大圣。
跟随我的脚步,通过对前面数讲内容的学习,相信你现在对 Vue+Vuex+vue-router 都已经比较熟悉了。在开启课程后续的复杂项目之前,学会如何调试项目也是我们必须要掌握的一个技能。
在项目开发中,我们会碰到各种各样的问题,有样式错误、有不符合预期的代码报错、有前后端联调失败等问题。也因此,一个能全盘帮我们监控项目的方方面面,甚至在监控时,能精确到源码每一行的运行状态的调试工具,就显得非常有必要了。
而 Chrome 的开发者工具 Devtools,就是 Vue 的调试工具中最好的选择。由于 Chrome 也公开了 Devtools 开发的规范,因而各大框架比如 Vue 和 React,都会在 Chrome Devtools 的基础之上,开发自己框架的调试插件,这样就可以更方便地调试框架内部的代码。Vue Devtools 就是 Vue 官方开发的一个基于 Chrome 浏览器的插件,作为调试工具,它可以帮助我们更好地调试 Vuejs 代码。
这节课,我会先为你讲解如何借助 Chrome 和 VS Code 搭建高效的开发环境,然后再教你使用 Vue 的官方调试插件 Vue Devtools 来进行项目调试工作。

Chrome 调试工具

首先,我们来了解一下 Chrome 的调试工具,也就是 Chrome 的开发者工具 Chrome DevTools。在 Chrome 浏览器中,我们打开任意一个页面,点击鼠标右键,再点击审查元素(检查),或者直接点击 F12 就可以看到调试窗口了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Vue Devtools 是开发 Vue.js 应用时必备的调试工具,能够帮助开发者更高效地调试代码。本文首先介绍了 Chrome 开发者工具的基本功能,包括 Elements 页面用于调试 HTML 和 CSS,Console 页面用于调试 JavaScript,以及 Vue Devtools 作为调试 Vue 必备的工具。在 Elements 页面中,开发者可以实时调整页面的 HTML 和 CSS 代码,帮助布局和样式调整。在 Console 页面中,开发者可以直接调试 JavaScript,并且页面中也会显示 JavaScript 出现的报错信息。Vue Devtools 则提供了更高级的功能,如显示 Vue 组件嵌套关系、实时同步数据和方法,以及调试 Vuex 和 vue-router。此外,文章还介绍了一些小技巧,如在 Components 页面下选中一个组件后,可以直接在编辑器里打开这个代码。另外,文章还分享了断点调试和性能相关的调试方法,以及思考题,为读者提供了更多的调试技巧和思考。整体而言,本文通过介绍 Chrome 开发者工具和 Vue Devtools,为读者提供了提高开发效率的必备工具和技巧。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《玩转 Vue 3 全家桶》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(24)

  • 最新
  • 精选
  • 元宝
    Object.entries([...document.querySelectorAll("*")].map(n=>n.tagName).reduce((pre, cur)=>{ pre[cur] = (pre[cur] || 0) + 1; return pre; }, {})).sort((a, b)=>b[1]-a[1]).slice(0, 3)

    作者回复: cool,和我写的简直一毛一样 给你点个赞 最后用console.table打印一下

    2021-11-12
    2
    56
  • 若川
    debugger 也是高级程序员必备的断点调试法,你一定要掌握。 很赞同大圣老师的这句话。我觉得是基本必备技能。但我发现真的有很多人不太会,甚至没调试过代码,没安装过vue-devtools。 其实vue官方文档有写怎么调试。《在 VS Code 中调试》https://cn.vuejs.org/v2/cookbook/debugging-in-vscode.html 更是少数人知道 vue-devtools 可以直接打开页面对应的组件源文件,不需要问同事,定位半天。 我之前也写过文章分析这个功能原理。《据说 99% 的人不知道 vue-devtools 还能直接打开对应组件文件?本文原理揭秘》https://juejin.cn/post/6959348263547830280

    作者回复: 给力给力,没翻墙的同学可以看下这个文章的devtools安装方法

    2021-11-12
    5
    42
  • Kobe的篮球
    vue3项目通过vite打包后,如何支持dev-tools啊

    作者回复: 新增这个命令 "build:dev": "vue-tsc --noEmit && vite build --mode=development", 这样就打包了一个支持devtools的打包版

    2021-12-13
    12
  • Beauty~fish🐬
    贺老面试题。。。还有其他的题吗,在哪里可以学习呢

    作者回复: 贺老有个live 很久之前听的

    2021-11-30
    1
  • 轻飘飘过
    看大家的写法都挺优秀的,大圣老师说的不用sort 和并列打印数据的问题,个人思考用桶排序求解🤔,代码如下,互相学习。 function main() { let tags = Array.from(document.querySelectorAll('*')); let tMap = {}, max = min = 1; tags.forEach(tag => { let v = tag.tagName; if (!tMap[v]) tMap[v] = 0; tMap[v]++; max = Math.max(tMap[v], max); min = Math.min(tMap[v], min); }); let bucket = new Array(max - min + 1); Object.keys(tMap).forEach(v => { if (!bucket[tMap[v] - min]) bucket[tMap[v] - min] = []; bucket[tMap[v] - min].push(v); }); let res = [], count = 3, i = bucket.length - 1; while (count > 0 && i >= 0) { if (bucket[i]) { count--; res.push(bucket[i]); } i--; } return res; };

    作者回复: cool

    2021-11-17
    1
  • 飞翔国度
    发现公司的vue项目都屏蔽了vuetools...在生产上开着是不是有点不安全?

    作者回复: 生产上确实不要开devtools,而且默认build的时候也会吧devtools相关的代码屏蔽

    2021-11-16
    2
    1
  • 乐叶
    let tag = [...document.querySelectorAll('*')].map(node => node.nodeName) let many3 = {} for (let i=0;i<tag.length;i++) { if (!many3[tag[i]]) { many3[tag[i]] = 0 } many3[tag[i]]++ } return Object.keys(many3).map(itemKey => ({label: itemKey, value: many3[itemKey]})).sort((item1, item2) => item2.value-item1.value)

    作者回复: cool

    2021-11-12
  • ch3cknull
    vue-devtools有两个,其中一个是不支持vue3的 下面是Google应用商店的扩展的链接,这个链接指向的插件是支持vue3的 http://chrome.google.com/webstore/detail/ljjemllljcmogpfapbkkighbhhppjdbg
    2021-11-12
    15
  • 花果山大圣
    参考答案之一, 其实这一题还可以扩展很多,比如不让你用sort,比如如果三四五名词的次数一样,怎么把这些并列的也打出来等等 let ret = Object.entries([...document.querySelectorAll('*')].map(node => node.nodeName).reduce((ret,n)=>{ ret[n] = ret[n]?ret[n]+1:1 return ret },{})).sort((a,b)=>b[1]-a[1]).slice(0,3) console.table(ret)
    2021-11-12
    11
  • ll
    devTool 是很牛的“谁用谁知道”,通过这节,如果没用过的小伙伴赶紧尝试下; 这节课后有如下感想: 1. 调试是工程的重要一环。 2. 想要提高调试环节的效率,要有好的方法,更要有趁手的工具 3. 在 web 开发领域,不夸张的说,最优秀和专业的非 Chrome devtoool 莫属。 4. 针对特定框架,更更专业的工具是各个“框架公司”基于 devtool 开发的“专属”测试工具。 5. 掌握方法论,并且熟练使用工具;是提高开发效率的明智选择。 6. 如果对 devtool 这么“神奇”抱有好奇,想知道这个是怎么实现的,其实结合思考题,就 能略知一二,其实原理是相通的
    2021-11-13
    5
收起评论
显示
设置
留言
24
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部