首屏加速——CDN
? ? 先了解一下,什么是CDN?(了解即可)
? ??全稱:Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡,
? ? ?目的:解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用于站點加速、點播、直播等場景。使用戶可就近取得所需內(nèi)容,解決 Internet網(wǎng)絡擁擠的狀況,提高用戶訪問網(wǎng)站的響應速度和成功率。
? ? ?在項目中CDN的原理(也是自己了解)~
? ? ? ? 作為一個網(wǎng)站應用,加載速度是非常重要的。加載速度,一個是程序的合理安排,如以組件按需加載,一個是js、css等資源的異步加載。
????????在Vue項目中,引入到工程中的所有js、css文件,編譯時都會被打包進vendor.js,瀏覽器在加載該文件之后才能開始顯示首屏。若是引入的庫眾多,那么vendor.js文件體積將會相當?shù)拇螅绊懯组_的體驗。
????????解決方法是,將引用的外部js、css文件剝離開來,不編譯到vendor.js中,而是用資源的形式引用,這樣瀏覽器可以使用多個線程異步將vendor.js、外部的js等加載下來,達到加速首開的目的。
????????外部的庫文件,可以使用CDN資源,或者別的服務器資源等。
常用的使用方式(****)
? ??一、資源引入
? ? ?????在index.html中,添加CDN資源,例如:
? <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
??<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>
??<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>
? ??二、添加配置
? ??????在bulid/webpack.base.conf.js文件中,增加externals,將引用的外部模塊導入,如下:
module.exports = {
?????????entry: {
??????????????????app:?'./src/main.js'
?????????},
?????????externals:{
??????????????????'vue':?'Vue',
??????????????????'vue-router':?'VueRouter',
??????????????????'vuex':'Vuex'
?????????????}
? ??????注意一點:
????????格式為 'aaa' : 'bbb', 其中,aaa表示要引入的資源的名字,bbb表示該模塊提供給外部引用的名字,由對應的庫自定。例如,vue為Vue,vue-router為VueRouter.
? ??三、去掉原有的引用
? ??????去掉import,如:
????????// import Vue from 'vue'
????????// import Router from 'vue-router'
????????去掉Vue.use(XXX),如:
????????// Vue.use(Router)
首屏加速——路由懶加載
? ? 路由懶加載,例:

? ? 組件懶加載,在vue實例中組件引入的時候添加。例:

? ? 全局懶加載,在項目中的mian.js中添加。例:

首屏加速——圖片懶加載
? ??VUE圖片懶加載-vue lazyload插件的簡單使用
????一. vue lazyload插件:
????????插件地址:https://github.com/hilongjw/vue-lazyload
????二.使用實例
????1.安裝
????????npm install vue-lazyload --save-dev
????2.main.js 引入插件
????????import VueLazyLoad from 'vue-lazyload'
????????Vue.use(VueLazyLoad,{
????????????error:require('./statics/site/imgs/erro.jpg'),
? ? ? ? ????loading:require('./statics/site/imgs/load.gif')
????????})
// 這里還需要加上一個 require?
????3.Vue文件中將需要懶加載的圖片綁定 v-bind:src 修改為 v-lazy
<img class="item-pic" v-lazy="newItem.picUrl"/>
三.功能擴展
????????圖片懶加載的簡單效果已經(jīng)實現(xiàn)了,然后就可以按這開發(fā)文檔的api進行擴展了:
