Vue知识点

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

2019-11-24  本文已影响0人  王芃皓

首屏加速——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进行扩展了:

上一篇 下一篇

猜你喜欢

热点阅读