記一次 Vue 調(diào)試 Element 組件 bug 經(jīng)歷

最近公司 iOS 項(xiàng)目不忙,我也就加入了一個前端 Vue 項(xiàng)目幫幫忙,順便學(xué)習(xí) js 和 Vue。

這里不得不說,Element 組件庫相當(dāng)好用,對于我這樣剛接觸前端的上手也很快,輕輕松松搭起一個漂亮界面。本以為是國外團(tuán)隊(duì)開發(fā),后來到 Github 查源碼,才發(fā)現(xiàn)是餓了么出品,也是蠻佩服。

Pagination 控件

bug 就出在一個 Pagination 分頁控件,設(shè)置 current-page 后,current-change 事件會偶然實(shí)效,回調(diào)函數(shù)得不到執(zhí)行。經(jīng)多次調(diào)試,確認(rèn)問題一定是出在 ElementPagination 分頁控件內(nèi)部。

于是乎開始調(diào)試源碼,Element 的源碼在 node_modules 中 element-ui 文件夾中。起初修改 node_modules/element-ui/packages/pagination/src/pagination.js,無效。搜索一番得知,webpack 引入的是 lib 目錄下的編譯打包后的 js。遂修改 node_modules/element-ui/lib/pagination.js,還是無效,Excuse me?后經(jīng)過調(diào)試發(fā)現(xiàn)element相關(guān)代碼都整合進(jìn)了 lib 下的一個 element-ui.common.js 文件。修改這個文件中的 Pagination 部分即可正常調(diào)試了。

調(diào)試過程就不細(xì)展開了,只是確認(rèn)源碼確實(shí)存在 bug 而已,可以自行修復(fù)。這時突然想到,Element 可能不是最新,也許可以升級一下看看?抱著試試看的心情,買了一個療程,哦不對,打開本項(xiàng)目的 package.json,發(fā)現(xiàn) "element-ui": "2.3.3",為什么是寫死的2.3.3。。。。。。一查,最新的版本都到2.4.1了,而就在我 debug 過程中,2.4.2也出了。。。

element 版本改為"element-ui": "^2.4.2", 再執(zhí)行更新

npm update element-ui

那個 bug 果然已經(jīng)得到修復(fù)。想想要是我早一點(diǎn)升級 element-ui,也許就不會耽誤這幾個小時,但是,也不會學(xué)到后面的調(diào)試方法,不會接觸到 Element 源碼。對比一下,還是利大于弊的。

通過這次調(diào)試 bug,了解了組件源碼是如何執(zhí)行的,了解到了.sync 修飾符和雙向綁定

this.$emit('update:title', newTitle)

最后,總結(jié)這2個多星期的前端學(xué)習(xí),就3點(diǎn):

  1. 做項(xiàng)目,可以接觸很多前端技術(shù)點(diǎn)和框架,加快新技術(shù)上手速度
  2. 看官方文檔,可以知道語言或框架的規(guī)范用法
  3. 看源碼,能加深對技術(shù)和原理的理解。
附帶兩個有意思的 npm 命令
列出所有可升級版本的 package
npm outdated
輸出當(dāng)前項(xiàng)目中所有安裝的 package 及其結(jié)構(gòu)
npm ls
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,099評論 25 709
  • 打了刪了又重打又刪了 ,一遍又一遍 。 好像就是找不到一個適合的詞語來形容我現(xiàn)在的心理 ,都怪你,你個臭劉振...
    難猜閱讀 474評論 0 2
  • 泛型接口 泛型接口允許我們將接口成員的參數(shù)和返回類型設(shè)置為泛型參數(shù)的接口。 語法 interface Imysel...
    今天庹閱讀 239評論 0 0
  • 安迪想當(dāng)一名記者,她給多家雜志打了電話,但是沒有人給她回應(yīng),除了《天橋》。更糟糕的是她對時尚一無所知,面試?yán)硭?dāng)然...
    Sheep_大妖怪閱讀 823評論 0 0
  • 前言:這是一篇關(guān)于如何合理選擇的方法論文章,但由于所選取的事例完全是個人經(jīng)歷,可能略顯瑣碎,所以在開頭直接擺明要點(diǎn)...
    AdenHereToWrite閱讀 360評論 0 0

友情鏈接更多精彩內(nèi)容