鍍金池/ 問(wèn)答/HTML/ 關(guān)于vue首頁(yè)優(yōu)化的問(wèn)題

關(guān)于vue首頁(yè)優(yōu)化的問(wèn)題

最近一起在用vue 開(kāi)發(fā)PC項(xiàng)目 有的是vue-cli構(gòu)建的 項(xiàng)目挺大的 各種import導(dǎo)入了很多的模塊
這幾天領(lǐng)導(dǎo)突然說(shuō) 要首頁(yè)優(yōu)化加載什么的 然后給了我一個(gè)鏈接 里面提到了三點(diǎn)優(yōu)化建議
1、// 在index.html里引入這兩個(gè)文件

<script src="https://cdn.bootcss.com/vue/2.3.3/vue.min.js"></script>
<script src="https://cdn.bootcss.com/axios/0.16.2/axios.min.js"></script>

2、去掉第三方j(luò)s的import,因?yàn)樵诘谝徊揭呀?jīng)通過(guò)script標(biāo)簽引用進(jìn)來(lái)了。
3、把第三方庫(kù)的js文件從打包文件里去掉
這個(gè)我就不理解了 我是通過(guò)vue-cli構(gòu)建的項(xiàng)目 還需要通過(guò)第一種方式去引入vue.min.js這樣的js文件嗎
第三點(diǎn)了不是太明白 怎么操作的

回答
編輯回答
萌小萌

index.html里面應(yīng)該盡量避免引入任何的js庫(kù),因?yàn)関ue一般來(lái)說(shuō)是做單頁(yè)面應(yīng)用的,index.html引入的文件會(huì)一直在,無(wú)論你怎么切換

2017年3月27日 20:54
編輯回答
舊城人

你領(lǐng)導(dǎo)的方案我不予評(píng)價(jià),我說(shuō)說(shuō)你的問(wèn)題的看法:

  1. vue-cli的話,你看看你的代碼有沒(méi)有使用 commonchunkplugin插件進(jìn)行公共文件切割,如果有,那么上面兩個(gè)文件會(huì)被打包成為一個(gè)公共的js,和業(yè)務(wù)的js分開(kāi),這樣子在業(yè)務(wù)代碼改變的時(shí)候,如果你的命名規(guī)則是使用chunkhash的,那么公共js的文件名是不會(huì)變的,是會(huì)被緩存的

  2. 加載一個(gè)公共文件的速度,在http1.1的時(shí)代,還是要比加載上面兩個(gè)js的速度要快的

  3. 通過(guò)上面那種方式引入的vue.js應(yīng)該是一個(gè)完整版的vue,而在vue-cli中,由于.vue文件直接被vue-loader預(yù)處理過(guò),其實(shí)引入的是一個(gè)runtime版本,詳見(jiàn)這里,這個(gè)是要比完整版要小的

  4. 所以說(shuō)vue項(xiàng)目的首屏優(yōu)化加載,從代碼加載的角度來(lái)說(shuō),你領(lǐng)導(dǎo)給的加載方式和vue-cli打包出來(lái)的東西加載效果是差不多的,而且文件數(shù)量增加,文件體積變大,可能還更加慢,vue項(xiàng)目首屏出現(xiàn)白屏的根本原因是由于頁(yè)面首屏內(nèi)容也是動(dòng)態(tài)去加載的,在請(qǐng)求的文檔流中只有一個(gè)根節(jié)點(diǎn),所以解析,加載需要過(guò)程,如果需要讓你的vue項(xiàng)目首屏出現(xiàn)的時(shí)間變短,我建議使用 vue的服務(wù)端渲染,或者是預(yù)渲染prerender,資料看這里

2018年7月29日 07:44
編輯回答
尛憇藌

第一條、第二條,不建議 這兩個(gè)文件本身沒(méi)有多大,加這兩條又多兩次http請(qǐng)求,也不見(jiàn)得有多大效果
第三條,同上,看這個(gè)第三方庫(kù)的大小和和效用頻次,

要加塊首頁(yè)加載,還是按需要加載最有效果,
分析 打包后的文件,看有什么什么第三方庫(kù),占用比較大,再考慮第三方CDN引入

2017年8月15日 04:24