修改目的
使用ElementUI el-tree過程發現選中節點,鍵盤移動上下鍵時(key down\key up)el-tree默認高亮移動的節點,業務上需要重寫此事件。
從官網發現該事件沒有暴露回調接口,故想到了修改elementui源碼,重新打包上傳到公司的npm私服。
定位代碼
在chrome devtools的Elements選中節點,查看節點的EventListener中keydown事件,可以看到該事件在element-ui.common.js中定義。發現確實是elementui自定義的事件響應,起初有懷疑時瀏覽器的默認行為類似tab鍵的功能。
解決問題
ElementUI是開源項目,到github下載項目后修改源碼,重新打包上傳到私服解決問題。
git clone https://github.com/ElemeFE/element.git # 使用git下載源碼
cd element & npm install #安裝依賴
在源碼的packages/tree/src/tree.vue中找到了對應的代碼邏輯。
我們查看源碼后,修改成我們業務上需要的效果,或者直接簡單的注釋掉這一行代碼。在package.json修改公司內部的element-ui版本號。
npm run dist #重新打包
npm publish --registry=http://xxx.xx/xx #發布到公司私服
以上就是本博文的全部內容,如果對你有幫助的話,點贊、評論、轉發三連
更多資源與第一手博客,請關注公眾號:程序員眾推,獲取。