欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue使用CDN引用項目組件,減少項目體積的步驟

 更新時間:2020年10月30日 15:34:54   作者:loeyo  
這篇文章主要介紹了Vue使用CDN引用項目組件,減少項目體積的步驟,幫助大家提高項目加載速度,感興趣的朋友可以了解下

  Vue項目打包后有的文件動輒幾百KB或幾M,這對一個前端項目的加載無疑是致命的。當(dāng)你的服務(wù)器部署在阿里云或亞馬遜,每秒只有100kb的加載速度時,頁面的載入速度絕對讓你崩潰。那么有什么辦法可以在依舊是100kb/s的加載速度下讓我們的頁面快起來呢?CDN算是其中之一的解決辦法。

  首先,我們要明白為什么我的Vue項目在打包后產(chǎn)生的文件會那么大。我們在最開始使用Vue的時候幾乎所有組件、插件的引用都會放到項目主文件中進(jìn)行即 main.js文件,我們的引用方式可能是這樣的:

import Vue from 'vue'
import App from './App'
import Router from 'vue-router'
import ElementUI from 'element-ui'
import axios from 'axios'
import 'element-ui/lib/theme-chalk/index.css'
import cookies from 'vue-cookies'
import qs from 'qs'
import store from './store'

  項目在打包的時候就會去自動查找依賴,并將依賴文件全部打入到項目中去,正是這些依賴的文件的存在導(dǎo)致了整個項目文件的體積龐大了起來。但是依賴文件又是必須的,總不可能把依賴文件刪除了不是。CDN的出現(xiàn)就為上述情況提供了一種解決方案。

  CDN全稱Content Delivery Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。CDN是構(gòu)建在現(xiàn)有網(wǎng)絡(luò)基礎(chǔ)之上的智能虛擬網(wǎng)絡(luò),依靠部署在各地的邊緣服務(wù)器,通過中心平臺的負(fù)載均衡、內(nèi)容分發(fā)、調(diào)度等功能模塊,使用戶就近獲取所需內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高用戶訪問響應(yīng)速度和命中率。

  Vue中使用CDN就相當(dāng)于是將原本自己項目所需要下載的依賴文件交由用戶的網(wǎng)絡(luò)進(jìn)行下載,Vue中僅僅保持對依賴文件的引用即可。主要需要改動的有兩個地方一個是Vue的index.html,以及build目錄下的webpack.base.conf.js,廢話不多說,上代碼:

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width,initial-scale=1.0">
 <title>Demo index html</title>
 <link rel="stylesheet"  rel="external nofollow" >
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.0"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-router@3.1.3"></script>
<script src="https://cdn.jsdelivr.net/npm/js-md5@0.7.3"></script>
<script src="https://cdn.jsdelivr.net/npm/element-ui@2.12.0/lib/index.js"></script>
</body>
</html>

  所引用的資源文件Url分為幾部分:

  第一部分:https://cdn.jsdelivr.net/npm 指定當(dāng)前資源下載站點,與之類似的還有UNPKG、cdnjs.comBootCDN等。個人比較推薦使用jsdelivr,速度比較穩(wěn)定

  第二部分:所要引用的包名,如:vue, vue-route, element-ui

  第三部分:具體引用依賴的版本號或具體文件,如:@2.6.0,@2.12.0/lib/index.js 此部分為可選部分   

  css文件也可以使用cdn來進(jìn)行引用

  上述配置完成后,還需要修改build/webpack.base.conf.js文件:

'use strict'
const path = require('path')
const utils = require('./utils')
const config = require('../config')
const vueLoaderConfig = require('./vue-loader.conf')

function resolve(dir) {
 return path.join(__dirname, '..', dir)
}


module.exports = {
 externals:{
 'vue':'Vue',
 'element-ui':'ELEMENT',
 'vue-router':'VueRouter',
 "moment": "moment",
 "md5": "js-md5"
 },
 context: path.resolve(__dirname, '../'),
 entry: {
 app: './src/main.js'
 },
 output: {
 path: config.build.assetsRoot,
 filename: '[name].js',
 publicPath: process.env.NODE_ENV === 'production'
 ? config.build.assetsPublicPath
 : config.dev.assetsPublicPath
 },

  如果沒有標(biāo)注部分的代碼,請插入。在externals配置中,像Vue、ELEMENT、VueRouter這些都是固定寫法,webpack會根據(jù)這些字符自動查找相關(guān)依賴并引入

  在修改完上述文件后,還需要修改main.js中關(guān)于這些文件的應(yīng)用:

import Vue from "vue";
import App from "./App";
import router from "VueRouter";
import cookies from "vue-cookies";
import VueAxios from "vue-axios";
import axios from "axios";//elementUI無需在引用,如需使用相關(guān)代碼請使用ELEMENT代替如:const Message = ELEMENT.Message;

  至此配置全部完成,需要注意的是使用CDN之后,用戶在訪問你的頁面時都會去請求所配置的CDN文件,所以選擇一個速度快且穩(wěn)定的CDN站點十分重要的;還有就是并不是所有的依賴文件都可使用此等方式引用,有些組件是不會導(dǎo)出對象的,也就意味著不能使用CDN來完成使用。

以上就是Vue使用CDN引用項目組件,減少項目體積的步驟的詳細(xì)內(nèi)容,更多關(guān)于vue 減少項目體積的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Vue如何使用Dayjs計算常用日期詳解

    Vue如何使用Dayjs計算常用日期詳解

    這篇文章主要給大家介紹了關(guān)于Vue如何使用Dayjs計算常用日期的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • vue項目雙滑塊組件使用

    vue項目雙滑塊組件使用

    這篇文章主要介紹了vue項目雙滑塊組件使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 一文帶你詳細(xì)了解Vue中的v-for

    一文帶你詳細(xì)了解Vue中的v-for

    v-for循環(huán)遍歷數(shù)據(jù),永遠(yuǎn)不要把v-if和v-for同時用在同一個元素上,下面這篇文章主要給大家介紹了關(guān)于如何通過一文帶你詳細(xì)了解Vue中v-for的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • vue項目開發(fā)中setTimeout等定時器的管理問題

    vue項目開發(fā)中setTimeout等定時器的管理問題

    這篇文章主要介紹了vue項目開發(fā)中setTimeout等定時器的管理問題,需要的朋友可以參考下
    2018-09-09
  • vue.js 底部導(dǎo)航欄 一級路由顯示 子路由不顯示的解決方法

    vue.js 底部導(dǎo)航欄 一級路由顯示 子路由不顯示的解決方法

    下面小編就為大家分享一篇vue.js 底部導(dǎo)航欄 一級路由顯示 子路由不顯示的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 關(guān)于SpringBoot與Vue交互跨域問題解決方案

    關(guān)于SpringBoot與Vue交互跨域問題解決方案

    最近在利用springboot+vue整合開發(fā)一個前后端分離的個人博客網(wǎng)站,所以這一篇總結(jié)一下在開發(fā)中遇到的一個問題,關(guān)于解決在使用vue和springboot在開發(fā)前后端分離的項目時,如何解決跨域問題。在這里分別分享兩種方法,分別在前端vue中解決和在后臺springboot中解決。
    2021-10-10
  • vue v-viewer組件使用示例詳解(v-viewer輪播圖)

    vue v-viewer組件使用示例詳解(v-viewer輪播圖)

    這篇文章主要介紹了vue v-viewer組件使用示例詳解(v-viewer輪播圖),本文結(jié)合實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • Vue3中Composition?API和Options?API的區(qū)別

    Vue3中Composition?API和Options?API的區(qū)別

    Vue3的Composition API和Options API是Vue.js框架中的兩種不同的API,本文主要介紹了Vue3中Composition?API和Options?API的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • vue 系列——vue2-webpack2框架搭建踩坑之路

    vue 系列——vue2-webpack2框架搭建踩坑之路

    本文從零搭建vue項目,給大家分享了我的vue2-webpack2框架搭建踩坑之路,需要的朋友可以參考下
    2017-12-12
  • 微信小程序地圖導(dǎo)航功能實現(xiàn)完整源代碼附效果圖(推薦)

    微信小程序地圖導(dǎo)航功能實現(xiàn)完整源代碼附效果圖(推薦)

    這篇文章主要介紹了微信小程序地圖導(dǎo)航功能實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論