关于vue项目打包上线后的首屏加速

首屏加速——CDN

    先了解一下,什么是CDN?(了解即可)

    全称:Content Delivery Network或Content Ddistribute Network,即内容分发网络,

     目的:解决因分布、带宽、服务器性能带来的访问延迟问题,适用于站点加速、点播、直播等场景。使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度和成功率。

     在项目中CDN的原理(也是自己了解)~

        作为一个网站应用,加载速度是非常重要的。加载速度,一个是程序的合理安排,如以组件按需加载,一个是js、css等资源的异步加载。

        在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首开的体验。

        解决方法是,将引用的外部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"/>


三.功能扩展

        图片懒加载的简单效果已经实现了,然后就可以按这开发文档的api进行扩展了:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 羊奶子基本信息:蓝靛果忍冬,又名羊奶子、黑瞎子果、山茄子、蓝果,属忍冬科,忍冬属。 形态结构和生活习性 灌木,高约...
    富硒特产阅读 1,160评论 0 0
  • 在我们日常生活中,塑料袋的使用越来越广泛,不但用其包装生活用品,许多人还会用塑料袋来装食品,这时我们就该分清楚那一...
    老山大夫阅读 540评论 0 1
  • Zookeeper 协议 简介:分布式协调服务,提供诸如统一命名、配置管理等基础服务越来越多的分布式应用面临数据一...
    孙阔阅读 692评论 0 0
  • 我和松是在我上班的地方认识的,他是老板的朋友,第一次见到他时,根本看不出他是一个差不多五十的人,看着就像正值三...
    随缘是福_ef36阅读 191评论 0 0
  • 傅家艷芳與兄弟 大嫂二嫂和三嫂 盛意邀請摘枇杷 周日驅車齊報到 庭前枇杷壓枝頭 兄弟摘果往下拋 吃在嘴裏甜在心 潤...
    大莲子阅读 556评论 0 0