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

解決vue項目router切換太慢問題

 更新時間:2020年07月19日 15:23:59   作者:晨愛衿文  
這篇文章主要介紹了解決vue項目router切換太慢問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題定位:

隨著項目增大,有一天突然發(fā)現(xiàn)頁面切換時候,要等1-2s頁面才切換過去,然后就開始定位問題,剛開始以為時頁面組件太多導(dǎo)致的,通過刪除組件,發(fā)現(xiàn)沒啥改善,然后就在兩個頁面打印日志,第二頁面created周期時間和路由切換時間相差不大,可以排除是頁面渲染耗時。然后在第一個頁面的destroyed周期里面打印日志,發(fā)現(xiàn)destroyed->router切換耗時1.5s左右,這時候定位問題是vue的destroyed周期耗時。

destroyed周期耗時:

這時候就考慮destroyed為啥要那么久,這時候就很納悶,第一反應(yīng)肯定是頁面組件太多,這是把組件都刪了,還是很慢,然后頁面就剩下一個表格和查詢條件,然后就想是不是數(shù)據(jù)量太大導(dǎo)致destroyed耗時,然后就查頁面接口,發(fā)現(xiàn)有個list接口有4000多條數(shù)據(jù),然后去掉接口,頁面切換立馬流暢了;就想數(shù)據(jù)多為啥導(dǎo)致銷毀耗時,然后就想到了這個list是下拉框,這4000多條數(shù)都渲染在頁面上,銷毀不耗時才怪呢。

selected下拉框數(shù)據(jù)多,導(dǎo)致銷毀耗時

然后就想辦法處理select數(shù)據(jù)多問題,第一時間想用服務(wù)端過濾,想到服務(wù)端性能跟不上,只能在前端過濾;然后就想辦法在前端過濾,初始化不給值,篩選的時候才給篩選過后的值

  remoteMethod(query) {
   if (query !== "") {
    this.selectLoading = true;
    setTimeout(() => {
     this.selectLoading = false;
     this.source.storeSelectList = this.source.storeList.filter(item => {
      return (
       item.storeName && item.storeName.toLowerCase().indexOf(query.toLowerCase()) > -1
      );
     });
    }, 200);
   } else {
    this.source.storeSelectList = this.search.brandId
     ? this.source.storeList
     : [];
   }
  }

補充知識:vue路由懶加載鏈接過多導(dǎo)致本地開發(fā)熱更新慢的解決

解決辦法

通過vue-cli來構(gòu)建的項目正常情況下一般的熱更新會在1-10s之間,但是當(dāng)項目中的路由鏈接數(shù)量達(dá)到一定數(shù)目的時候我發(fā)現(xiàn)熱更新的速度大幅增加.甚至長達(dá)2-3分鐘之久,這就讓我堅決不能忍了,隨便改點東西就要等如此之久…當(dāng)然這個跟電腦的CPU是有一定關(guān)系的

于是開始著手解決問題,不過查了好久愣是沒有什么解決辦法,后來在一位大佬的幫助下才解決.順便利用這次機會記錄一下這個過程

首先,在router文件下面創(chuàng)立兩個js文件,分別為

_import_development.js

_import_production.js

如圖:

上代碼

_import_development.js

這個文件用作本地開發(fā)用

module.exports = file => require('@/views/' + file + '.vue').default

_import_production.js

這個文件用過打包部署用

module.exports = file => () => import('@/views/' + file + '.vue')

然后需要在index.js里面修改一下

const _import = require('./_import_' + process.env.NODE_ENV);

export const routers = [
  {
    path: '/',
    name: 'home',
    meta: { 
      title: '主頁'
    },
    component: _import('home')
  },
]

這樣修改以后在本地開發(fā)就不會出現(xiàn)熱更新變慢的情況了

基本都在幾秒之內(nèi)

不過這個方法只限于路由都在前端項目里寫固定的情況下

如果是動態(tài)路由我沒有試過,不清楚有沒有用

以上這篇解決vue項目router切換太慢問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue中的h函數(shù)使用及說明

    vue中的h函數(shù)使用及說明

    這篇文章主要介紹了vue中的h函數(shù)使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)

    Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)

    這篇文章主要介紹了Ant Design Vue全局對話確認(rèn)框(confirm)的回調(diào)不觸發(fā)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue使用formData類型上傳文件

    Vue使用formData類型上傳文件

    這篇文章主要介紹了Vue使用formData類型上傳文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue.js 和 MVVM 的注意事項

    Vue.js 和 MVVM 的注意事項

    MVVM 是Model-View-ViewModel 的縮寫,它是一種基于前端開發(fā)的架構(gòu)模式,Vue.js 是一個提供 MVVM 風(fēng)格的雙向數(shù)據(jù)綁定的 Javascript 庫,專注于View 層。這篇文章給大家介紹Vue.js 和 MVVM 的注意事項,感興趣的朋友一起看看吧
    2016-11-11
  • Vue的elementUI實現(xiàn)自定義主題方法

    Vue的elementUI實現(xiàn)自定義主題方法

    下面小編就為大家分享一篇Vue的elementUI實現(xiàn)自定義主題方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue3?中實現(xiàn)元素拖拽功能

    Vue3?中實現(xiàn)元素拖拽功能

    這篇文章主要介紹了在Vue3中實現(xiàn)飄逸的元素拖拽,在本次案例中需要認(rèn)真思考對應(yīng)的幾個坐標(biāo)和移動時坐標(biāo)如何更新,事件的使用要成對出現(xiàn),如何在這個拖拽的 Icon 上增加點擊事件時還需要多做一些處理,需要的朋友可以參考下
    2023-07-07
  • Vue.js使用computed屬性實現(xiàn)數(shù)據(jù)自動更新

    Vue.js使用computed屬性實現(xiàn)數(shù)據(jù)自動更新

    在Vue組件中,computed屬性是在組件的選項對象中聲明的,你可以把它們想象成組件的一個小功能,告訴Vue當(dāng)某些數(shù)據(jù)變化時,如何更新界面,本文給大家介紹了Vue.js使用computed屬性實現(xiàn)數(shù)據(jù)自動更新,需要的朋友可以參考下
    2024-06-06
  • 淺談Vue SSR中的Bundle的具有使用

    淺談Vue SSR中的Bundle的具有使用

    這篇文章主要介紹了淺談Vue SSR中的Bundle的具有使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 如何在Vue.js中實現(xiàn)標(biāo)簽頁組件詳解

    如何在Vue.js中實現(xiàn)標(biāo)簽頁組件詳解

    這篇文章主要給大家介紹了關(guān)于如何在Vue.js中實現(xiàn)標(biāo)簽頁組件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • 實例教學(xué)如何寫vue插件

    實例教學(xué)如何寫vue插件

    本次小編通過一個簡單的實例來教給大家如何寫一個vue插件,以及需要注意的地方,如果有需要的讀者跟著學(xué)習(xí)一下吧。
    2017-11-11

最新評論