問題
Vue+Element UI 做的管理后臺,點擊登錄按鈕
,發現 接口會連續掉兩次
,發起兩次網絡請求
,但其他接口都是正常調用的,沒有這個問題,并且登錄按鈕也加了loading
,防止重復點擊
,于是開始進行排查
排查
request文件以及 接口封裝都排查了 沒有發現問題,最后通過打斷點,一步一步調試,發現是因為 this.$store.dispatch("Login", user)
,是dispatch
。觸發了兩次方法,發起了兩次網絡請求
找到問題了,想換一種方法來寫登錄這塊的邏輯,但是代碼改動比較大,而且治標不治本,
思考
這種寫法本身沒有什么問題,那么為什么會觸發兩次吶?
最后發現竟然是vs code中的下載了插件導致的
Vs code中Sass/Less/Stylus/Pug/Jade/Typescript/Javascript Compile Hero Pro插件
在VSCode安裝了這個插件后,會有這個問題,保存后會在我本地文件store
里,生成dist
文件夾,里面有同名的文件(名字.devjs
),所以每次執行actions
都運行兩次
解決辦法
果斷選擇卸載該插件,
小小記錄一下~ 實在是沒想過這方面會影響,一直以為是代碼寫的有問題,排查了一下午的時間
Tips
如果發現 卸載了插件,頁面有報錯,
報錯信息為“Module build failed (from ./node_modules/sass-loader/dist/cjs.js)“錯誤
清理緩存 有時緩存問題可能導致編譯錯誤。嘗試清理緩存并重新構建項目
在終端輸入
npm cache clean --force
npm install
即可解決該問題~ (我遇到了哈~小小記錄一下)