Vue加載速度優化,verder.js和element.js加載速度慢解決方法

1. 使用CDN

這里把常用的vue、vuex、elementui、echarts、axios都引入成cdn的方式

1、在index.html引入CDN

找到public/index.html在上方引入下邊的cdn。

[!NOTE]

引入script的時候,一定要把vue.js放到最上邊,最先引入,不然后邊的js加載會有問題

  <!-- 引入樣式 --><link href="https://cdn.bootcss.com/element-ui/2.8.2/theme-chalk/index.css" rel="stylesheet"><link href="https://cdn.bootcss.com/element-ui/2.15.14/theme-chalk/index.css" rel="stylesheet"><script src="https://cdn.bootcss.com/vue/2.7.14/vue.min.js"></script><script src="https://cdn.bootcss.com/element-ui/2.15.14/index.js"></script><script src="https://cdn.bootcss.com/vue-router/3.6.5/vue-router.min.js"></script><script src="https://cdn.bootcss.com/vuex/3.6.2/vuex.min.js"></script><script src="https://cdn.bootcss.com/axios/1.11.0/axios.min.js"></script><script src="https://cdn.bootcss.com/echarts/6.0.0/echarts.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/vue-echarts/6.7.3/index.esm.min.js"></script>

2、批量注釋掉引用

main.js項目主js或者ts中去除對element 、vue、vuex、echarts、axios的引用

全局搜索

// import Vue from 'vue'
// import Vuex from 'vuex'
// import ElementUI from 'element-ui'
// import 'echarts'
// import request from 'axios'
// import { MessageBox } from 'element-ui'
// import { Loading, Message, MessageBox, Notification } from 'element-ui'

把這些直接引用的地方都注釋掉

3、main.js(指定文件排查)

在mian.js中注釋掉 element 、vue、vuex、echarts、axios的引用

其中**Vue.use(Elment)**要注釋掉。不然啟動會報錯

4、router/index.js(指定文件排查)

注釋掉

// import Vue from 'vue'
// import VueRouter from 'vue-router'

保留

Vue.use(VueRouter)

[!NOTE]

這里要注意一下,Vue.use(VueRouter)中的VueRouter不能改為其他字段,否則會報錯

5、store/index.js(指定文件排查)

注釋掉

// import Vue from 'vue'
// import Vuex from 'vuex'

保留

Vue.use(Vuex)

6、webpack出去除依賴

在webpack的配置文件中去除對vue、vuex、axios、echarts、element等的依賴。

查看主目錄的vue.config.js或者webpack.config.js之類的打包配置文件

也可以搜索module.exports = {此文件中就可以加上配置,去除以來

module.exports = {// 引入外部庫, 無需webpack打包處理externals: {'vue' : 'Vue','vue-router':'VueRouter','vuex':'Vuex','axios':'axios','element-ui':'ElementUI','mockjs': 'Mock','echarts': 'echarts','ueditor': 'UE'}
}

2. 路由懶加載

router/index.js

路由使用懶加載模式

// import Vue from 'vue'
// import VueRouter from 'vue-router'
import Layout from '@/layouts'
import { publicPath, routerMode } from '@/config'Vue.use(VueRouter)
export const constantRoutes = [{path: '/login',component: () => import('@/views/login/index'),hidden: true,},{path: '/register',component: () => import('@/views/register/index'),hidden: true,},{path: '/401',name: '401',component: () => import('@/views/401'),hidden: true,},{path: '/404',name: '404',component: () => import('@/views/404'),hidden: true,},
]
// 路由懶加載
const device = ()=> import("@/views/device/index")
const deviceVersion = ()=> import("@/views/deviceVersion/index")
const mqttUser = ()=> import("@/views/mqttUser/index")
const role = ()=> import("@/views/personnelManagement/roleManagement/index")
const user = ()=> import("@/views/personnelManagement/userManagement/index")
export const asyncRoutes = [{path: '/',component: Layout,redirect: '/index',children: [{path: 'index',name: 'Index',component: () => import('@/views/index/index'),meta: {title: '首頁',icon: 'home',affix: true,},},],},{path: "/device",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: device,meta: {title: "設備管理",icon: "vector-square",permissions: ["admin"],},},],},{path: "/deviceVersion",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: deviceVersion,meta: {title: "設備版本",icon: "cloud-upload-alt",permissions: ["admin"],},},],},{path: "/mqttUser",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: mqttUser,meta: {title: "設備接入",icon: "cube",permissions: ["admin"],},},],},{path: "/role",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: role,meta: {title: "角色管理",icon: "diagnoses",permissions: ["admin"],},},],},{path: "/user",component: Layout,redirect: "noRedirect",children: [{path: "index",name: "Index",component: user,meta: {title: "用戶管理",icon: "user-friends",permissions: ["admin"],},},],},{path: '*',redirect: '/404',hidden: true,},
]const router = new VueRouter({base: publicPath,mode: routerMode,scrollBehavior: () => ({y: 0,}),routes: constantRoutes,
})export function resetRouter() {location.reload()
}export default router

3. Nginx開啟Gzip壓縮

httpserver 模塊中添加配置

server {# 其他配置...gzip on; # 開啟gzip壓縮gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript image/png image/gif image/jpeg; # 設置需要壓縮的文件類型gzip_comp_level 6; # 設置gzip的壓縮級別,1-9,9最壓縮,但最耗時gzip_buffers 16 8k; # 設置系統獲取幾個單server存儲gzip的壓縮結果數據流。gzip_http_version 1.1; # 設置識別HTTP協議版本,默認1.1gzip_vary on; # 此指令可以讓前端的緩存服務器緩存在不同的壓縮方式上。# gzip_proxied any; # 對于后端服務器返回的數據進行壓縮,默認不對數據進行壓縮。
}

重啟nginx使配置生效

/usr/local/nginx/sbin/nginx -s reload

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/94918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/94918.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/94918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

49.【.NET8 實戰--孢子記賬--從單體到微服務--轉向微服務】--擴展功能--集成網關--Refit跨服務調用

Refit是一個用于.NET平臺的REST庫,它可以將REST API轉換為實時類型安全的接口。通過Refit,我們可以輕松實現微服務之間的跨服務調用,使服務間通信變得更加簡單和類型安全。本文將介紹如何在我們的項目中使用Refit來實現微服務間的通信。 一、什么是Refit Refit是一個強大的REST…

日志ELK、ELFK、EFK

一.ELK架構Elasticsearch Logstash Kibana 數據庫日志處理日志顯示1.logstash的使用&#xff08;1&#xff09;input&#xff1a;輸入&#xff08;2&#xff09;filter&#xff1a;處理&#xff08;3&#xff09;output&#xff1a;輸出2.ELFK架構Filebeat-->Elasticsearc…

【CUDA進階】MMA分析Bank Conflict與Swizzle(下)

目錄前言1. bank conflict 分析2. 通過 padding 解決 bank conflict3. mma 搭配 wmma 實現矩陣乘法計算3.1 代碼實現3.2 補充&#xff1a;stmatrix_sync 函數分析3.3 補充&#xff1a;__shfl_sync 函數詳解4. swizzle 原理講解5. swizzle 實現思路講解結語下載鏈接參考前言 學習…

天氣查詢系統

項目要求 項目知識點 問題與解決 代碼分部 結果展示 項目要求 1.顯示天氣預報系統界面 2.系統可以通過選擇城市配置獲取不同城市天氣信息 3.查看實時的天氣信息 &#xff08;當前溫度、最高溫度、最低溫度、當前濕度、最高濕度、最低濕度、風向、風力、風級等信息&#x…

三重積分的對稱性

文章目錄前言柱面球面前言 規律作息 柱面 太牛了。我完全看不懂。實際上就類似于極坐標系。 球面 看到這么多東西&#xff0c;我真害怕。今天是 8.30 &#xff0c;不管 9.10 有沒有復習完概率的強化&#xff0c;我都一定要開始套卷&#xff0c;還有專業課的復習。?\phi?…

深入理解 RabbitMQ:從底層原理到實戰落地的全維度指南

引言&#xff1a; 本文總字數&#xff1a;約 18500 字預計閱讀時間&#xff1a;45 分鐘 為什么我們需要 RabbitMQ&#xff1f; 在當今分布式系統架構中&#xff0c;消息隊列已成為不可或缺的核心組件。想象一下&#xff0c;當你在電商平臺下單時&#xff0c;系統需要處理庫存…

寬帶有丟包,重傳高的情況怎么優化

寬帶丟包和重傳率高是一個非常影響網絡體驗的常見問題。它會導致游戲卡頓、視頻通話模糊、網頁加載慢等。別擔心&#xff0c;我們可以按照從易到難的順序&#xff0c;系統地排查和優化。請遵循以下步驟&#xff1a;第一步&#xff1a;基礎排查&#xff08;自己動手&#xff0c;…

Kotlin 協程之Channel 的高階應用

前言 了解了 Channel 的基礎概念和基本使用 后&#xff0c;我們再來看一看 Channel 的特性以及高階應用。 Channel 是"熱流" 熱流概念 Channel 是熱流&#xff08;Hot Stream&#xff09;&#xff0c;具備以下特性&#xff1a; 數據的生產和消費是兩套獨立的流程 …

PostgreSQL表空間(Tablespace)作用(管理數據庫對象的存儲位置)(pg_default、pg_global)

文章目錄**1. 靈活的數據存儲管理**- **邏輯與物理分離**&#xff1a;表空間為數據庫對象&#xff08;如表、索引&#xff09;提供了一個邏輯名稱與物理存儲路徑的映射。用戶無需直接操作底層文件路徑&#xff0c;只需通過表空間名稱管理數據。- **多數據庫共享表空間**&#x…

Ansible 核心運維場景落地:YUM 倉庫、SSH 公鑰、固定 IP 配置技巧

1&#xff1a;如何一次性驗證所有主機能否被 Ansible 訪問&#xff1f; 答&#xff1a;使用臨時命令&#xff1a;ansible all -m ansible.builtin.ping或驗證 sudo 是否正常&#xff1a;ansible all -m ansible.builtin.ping --become -K2&#xff1a;如何用 Ansible 統一配置…

rman導致的報錯ORA-27037: unable to obtain file status

有套3節點的11204集群環境&#xff0c;在db2上配置了rman備份&#xff0c;今天例行檢查時發現db1和db3上不定期有報錯&#xff0c;報錯如下&#xff1a;Control file backup creation failed:failure to open backup target file /u01/app/oracle/product/11.2.0/db_1/dbs/snap…

Kubernetes 與 GitOps 的深度融合實踐指南

前言&#xff1a;在云原生技術飛速發展的今天&#xff0c;Kubernetes&#xff08;簡稱 K8s&#xff09;已成為容器編排領域的事實標準&#xff0c;而 GitOps 作為一種基于 Git 的云原生運維理念&#xff0c;正與 K8s 深度融合&#xff0c;為企業實現自動化、可追溯、可審計的應…

REST-assured 接口測試編寫指南

REST-assured 簡介 REST-assured 是一個基于 Java 的 DSL&#xff08;領域特定語言&#xff09;庫&#xff0c;專門用于簡化 RESTful API 測試的編寫。它提供了流暢的 API 接口&#xff0c;使得測試代碼更加易讀易寫&#xff0c;支持 JSON 和 XML 等多種響應格式的驗證。 基本環…

內網應用如何實現外網訪問?外地通過公網地址訪問內網服務器的設置方法

一、內網應用程序在外網需要連接訪問遇到的問題我們經常需要在內網中部署服務&#xff0c;比如一個 Web 服務器或者數據庫&#xff0c;但由于本地沒有公網IP&#xff0c;這些服務無法直接從外地公網訪問。如自己家里的監控系統&#xff0c;在家時能查看&#xff0c;但出門在外就…

ubuntu24.04 QT中配置opencv4.12

假如生成的opencv路徑是&#xff1a;/usr/local/opencv4.12QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINE…

客戶端是否都需要主動發送`FindService`報文來尋找服務

<摘要> 在AUTOSAR SOME/IP-SD的服務發現流程中&#xff0c;客戶端是否需要主動發送FindService報文來尋找服務&#xff0c;是理解服務訂閱邏輯的一個關鍵。這將直接影響到事件組訂閱的觸發時機和網絡行為。下文將結合規范&#xff0c;對這一問題進行深入剖析。 <解析&…

Go語言流式輸出實戰:構建高性能實時應用

什么是流式輸出&#xff1f; 流式輸出&#xff08;Streaming Output&#xff09;是一種服務器推送技術&#xff0c;允許數據在生成過程中逐步發送到客戶端&#xff0c;而不是等待所有數據準備就緒后一次性發送。這種技術顯著改善了用戶體驗&#xff0c;特別是在處理大量數據或長…

操作系統上的Docker安裝指南:解鎖容器化新世界

摘要&#xff1a;本文詳細介紹了Docker在不同操作系統上的安裝方法。主要內容包括&#xff1a;Windows系統通過Docker Desktop安裝&#xff0c;需啟用Hyper-V和WSL2&#xff1b;Mac系統同樣使用Docker Desktop&#xff0c;根據芯片類型選擇版本&#xff1b;Linux系統以Ubuntu為…

【微信小程序】分別解決H5的跨域代理問題 和小程序正常不需要代理問題

——總問&#xff1a;何為跨域和代理&#xff1f; &#x1f539;什么叫跨域&#xff1f; 前端在瀏覽器里發請求時&#xff0c;如果 域名 / 協議 / 端口 三個中有一個不一樣&#xff0c;就會觸發 跨域問題。 例子&#xff1a; 頁面跑在 http://localhost:5173你要請求接口 http:…

數字簽名 digital signature

文章目錄1、嚴謹的定義2、技術原理&#xff1a;如何工作&#xff1f;第一步&#xff1a;發送者 - 簽名過程第二步&#xff1a;接收者 - 簽名驗證過程3、C語言實現示例4、關鍵技術要點5、安全注意事項6、最重要的應用&#xff1a;TLS/SSL 與網站安全1、嚴謹的定義 數字簽名是一…