這篇文章主要講解了如何解決vue-router的Import異步加載模塊問題,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。
義烏網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),義烏網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為義烏成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的義烏做網(wǎng)站的公司定做!
1、問題現(xiàn)象
2、出現(xiàn)問題的代碼點(diǎn)
3、替代方案:
把import()
替換成如下:
Promise.resolve().then(()=>require(`@/views/${str}`))
4、原因分析
項(xiàng)目在編譯時(shí),出現(xiàn)一個(gè)警告
這個(gè)警告的含義:
require接收了一個(gè)變量,會(huì)報(bào)上面的警告,接收一個(gè)寫死的字符串值時(shí)則沒有警告!
我們通過控制臺(tái)查看到import()對(duì)應(yīng)編譯過后的代碼:
從上圖可以看到require接收了一個(gè)變量,所以運(yùn)行時(shí)出現(xiàn)了警告。
那這樣就會(huì)報(bào)上面找不到對(duì)應(yīng)的模塊。
那我們?cè)賮砜匆粋€(gè)import()正確編譯過后的代碼:
通過對(duì)比編譯過后的代碼,可以輕易發(fā)現(xiàn)不同點(diǎn)。
花了大量時(shí)間,去找node_modules中的那個(gè)包版本不一致導(dǎo)致的,有一次嘗試成功了, 但回想不起是哪一步操作的呢,再復(fù)現(xiàn)的時(shí)候,也沒對(duì)了。先暫時(shí)擱置吧,希望對(duì)webpack和Babel熟悉的大佬看到,能指點(diǎn)一二了。
所以根據(jù)編譯過后的代碼,以及require的特性,嘗試出了一個(gè)臨時(shí)解決方案。
看完上述內(nèi)容,是不是對(duì)如何解決vue-router的Import異步加載模塊問題有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。