亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

VSCode使React?Vue代碼調(diào)試變得更爽

 更新時(shí)間:2022年07月14日 17:04:52   作者:zxg_神說要有光  
這篇文章主要為大家介紹了VSCode使React?Vue代碼調(diào)試變得更爽的使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

作為前端開發(fā),基本每天都要調(diào)試 Vue/React 代碼,不知道大家都是怎么調(diào)試的,但我猜大概有這么幾種:

  • 不調(diào)試,直接看代碼找問題
  • console.log 打印日志
  • 用 Chrome Devtools 的 debugger 來調(diào)試
  • 用 VSCode 的 debugger 來調(diào)試

不同的調(diào)試方式效率和體驗(yàn)是不一樣的,我現(xiàn)在基本都是用 VSCode debugger 來調(diào)試,效率又高、體驗(yàn)又爽。

可能很多同學(xué)還不知道怎么用 VSCode 調(diào)試網(wǎng)頁,這篇文章我就來介紹下。

我們分別看下 React 和 Vue 的:

用 VSCode 調(diào)試 React 代碼

我用 create-react-app 創(chuàng)建了一個(gè) demo 項(xiàng)目,有這樣一個(gè)組件:

跑起來開發(fā)服務(wù)器:

瀏覽器顯示的界面是這樣的:

如何用 VSCode 調(diào)試它呢?

我們在根目錄下添加一個(gè) .vscode/launch.json 的配置文件:

創(chuàng)建了一個(gè)調(diào)試配置,類型是 chrome,并指定調(diào)試的 url 是開發(fā)服務(wù)器的地址。

在 react 代碼里打兩個(gè)斷點(diǎn):

然后點(diǎn)擊運(yùn)行:

看,XDM,它斷住了!調(diào)用棧、當(dāng)前環(huán)境的變量等都有。

釋放斷點(diǎn),繼續(xù)往下走。

點(diǎn)擊的時(shí)候也能拿到對應(yīng)的事件對象:

是不是超方便!

而且當(dāng)你寫業(yè)務(wù)累了,想摸魚看會(huì) react 源碼,那直接點(diǎn)擊調(diào)用棧里的某一幀看就行:

比如渲染的時(shí)候會(huì)調(diào)用 renderWithHooks 方法,里面的 workInProgress 對象就是當(dāng)前 fiber 節(jié)點(diǎn),它的 memorizedState 屬性就是 hooks 存放值的地方:

用 VSCode 來調(diào)試 React 代碼之后,調(diào)試業(yè)務(wù)代碼或者看源碼的體驗(yàn)都很爽,有木有。

再來看下 Vue 的:

用 VSCode 調(diào)試 Vue 代碼

Vue 的調(diào)試會(huì)麻煩一些,要在上面的基礎(chǔ)上額外對路徑做一些映射。

因?yàn)?React 我們是直接寫 jsx、tsx,它和編譯之后的 js 文件一一對應(yīng),而 Vue 不是,Vue 我們寫的是 SFC(single file component) 格式的文件,需要 vue-loader 來把它們分成不同的文件,所以路徑單獨(dú)映射一下,才能對應(yīng)到源碼位置。

也就是調(diào)試配置里多了個(gè) sourceMapPathOverrides:

那怎么映射呢?

可以在源碼里隨便加個(gè) debugger,在瀏覽器里看下現(xiàn)在映射的路徑是啥:

這里的 webpack://test-vue-debug/src/App.vue?11c4 就是要映射的路徑,那映射到哪里呢?

很明顯是映射到本地的路徑,也就是這樣:

workspaceRoot 是 vscode 提供的環(huán)境變量,就是項(xiàng)目的跟路徑,這樣一映射之后,地址不就變成本地的文件了么?那么在本地文件中打斷點(diǎn)就能生效了:

 

看這里的路徑,明顯映射到項(xiàng)目下的文件了。

但是映射的時(shí)候后面還帶了個(gè) hash,這個(gè) hash 是會(huì)變得,怎么辦呢?

這個(gè)路徑是可以配置的,這其實(shí)就是 webpack 生成 sourcemap 的時(shí)候的文件路徑,可以通過 output.devtoolModuleFilenameTemplate 來配置:

可用的變量大家可以看文檔,就不展開了(隨便看一下就行):

比如我把路徑配成了這樣:

那調(diào)試時(shí)的文件路徑就是這樣的:

前綴不用管,就看后面的部分,這不就去掉了 ?hash 了么

然后把它映射到本地文件:

這樣就又映射上了,在 vscode 打的斷點(diǎn)就生效了:

不管你是想調(diào)試 Vue 業(yè)務(wù)代碼,還是想看 Vue 源碼,體驗(yàn)都會(huì)很爽的。

總結(jié)

作為前端工程師,調(diào)試 Vue、React 代碼是每天都要做的事情,不同的調(diào)試方式體驗(yàn)和效率都是不一樣的。所以我想把我常用的 VSCode 調(diào)試網(wǎng)頁的方式介紹給大家。

React 的調(diào)試相對簡單,只要添加一個(gè) chrome 類型的 dubug 配置就行,Vue 的調(diào)試要麻煩一些,要做一次路徑映射,如果路徑里有 hash,還要改下生成路徑的配置,然后再映射(但也只需要配一次)。

用 VSCode 來調(diào)試 React/Vue 代碼,不管是調(diào)試業(yè)務(wù)代碼,還是想看會(huì)源碼都是很方便的。大家不妨試一下,會(huì)讓調(diào)試這件事情變得很愉悅的。

以上就是VSCode使React Vue代碼調(diào)試變得更爽的詳細(xì)內(nèi)容,更多關(guān)于VSCode調(diào)試React Vue的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue3+Vue Router實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例代碼

    Vue3+Vue Router實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航的示例代碼

    隨著單頁面應(yīng)用程序(SPA)的日益流行,前端開發(fā)逐漸向復(fù)雜且交互性強(qiáng)的方向發(fā)展,在這個(gè)過程中,Vue.js及其生態(tài)圈的工具(如Vue Router)為我們提供了強(qiáng)大的支持,本文將介紹如何在Vue 3中使用Vue Router實(shí)現(xiàn)動(dòng)態(tài)路由導(dǎo)航,需要的朋友可以參考下
    2024-08-08
  • Vue路由傳遞參數(shù)與重定向的使用方法總結(jié)

    Vue路由傳遞參數(shù)與重定向的使用方法總結(jié)

    路由的本質(zhì)就是一種對應(yīng)關(guān)系,比如說我們在url地址中輸入我們要訪問的url地址之后,瀏覽器要去請求這個(gè)url地址對應(yīng)的資源,下面這篇文章主要給大家介紹了關(guān)于Vue路由傳遞參數(shù)與重定向的使用方法,需要的朋友可以參考下
    2022-10-10
  • 基于vue 動(dòng)態(tài)菜單 刷新空白問題的解決

    基于vue 動(dòng)態(tài)菜單 刷新空白問題的解決

    這篇文章主要介紹了基于vue 動(dòng)態(tài)菜單 刷新空白問題的解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue3實(shí)現(xiàn)檢測密碼強(qiáng)度值功能

    Vue3實(shí)現(xiàn)檢測密碼強(qiáng)度值功能

    本文將演示如何使用Vue?3實(shí)現(xiàn)一個(gè)簡單的密碼強(qiáng)度檢測功能,通過實(shí)時(shí)反饋,幫助用戶創(chuàng)建更安全的密碼,從而提升整體系統(tǒng)的安全性,需要的朋友可以參考下
    2024-06-06
  • vue小白入門教程

    vue小白入門教程

    vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架,本文通過實(shí)例給大家介紹了vue入門教程適用小白初學(xué)者,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • Vue如何在CSS中使用data定義的數(shù)據(jù)淺析

    Vue如何在CSS中使用data定義的數(shù)據(jù)淺析

    這篇文章主要給大家介紹了關(guān)于Vue如何在CSS中使用data定義的數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法

    Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法

    這篇文章主要介紹了Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • vue如何實(shí)現(xiàn)無縫輪播圖

    vue如何實(shí)現(xiàn)無縫輪播圖

    這篇文章主要介紹了vue如何實(shí)現(xiàn)無縫輪播圖,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 關(guān)于Uncaught(in?promise)TypeError:?list?is?not?iterable報(bào)錯(cuò)解決

    關(guān)于Uncaught(in?promise)TypeError:?list?is?not?iterable報(bào)錯(cuò)

    這篇文章主要給大家介紹了關(guān)于Uncaught(in?promise)TypeError:?list?is?not?iterable報(bào)錯(cuò)的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • electron-builder打包vue2項(xiàng)目問題總結(jié)

    electron-builder打包vue2項(xiàng)目問題總結(jié)

    這篇文章主要介紹了electron-builder打包vue2項(xiàng)目問題總結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-08-08

最新評論