亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

淺談Vue 初始化性能優化

2019-11-19 15:35:43
字體:
來源:轉載
供稿:網友

前言

一般來說,你不需要太關心vue的運行時性能,它在運行時非常快,但付出的代價是初始化時相對較慢。在最近開發的一個Hybrid APP里,Android Webview初始化一個較重的vue頁面竟然用了1200ms ~ 1400ms,這讓我開始重視vue的初始化性能,并最終優化到200 ~ 300ms,這篇文章分享我的優化思路。

性能瓶頸在哪里?

先看一下常見的vue寫法:在html里放一個app組件,app組件里又引用了其他的子組件,形成一棵以app為根節點的組件樹。

<body>  <app></app> </body>

而正是這種做法引發了性能問題,要初始化一個父組件,必然需要先初始化它的子組件,而子組件又有它自己的子組件。那么要初始化根標簽<app>,就需要從底層開始冒泡,將頁面所有組件都初始化完。所以我們的頁面會在所有組件都初始化完才開始顯示。

這個結果顯然不是我們要的,更好的結果是頁面可以從上到下按順序流式渲染,這樣可能總體時間增長了,但首屏時間縮減,在用戶看來,頁面打開速度就更快了。

要實現這種渲染模式,我總結了下有3種方式實現。第3種方式是我認為最合適的,也是我在項目中實際使用的優化方法。

第一種:不使用根組件

這種方式非常簡單,例如:

<body>  <A></A>  <B></B>  <C></C></body>

拋棄了根組件<app>,從而使A、B、C每一個組件初始化完都立刻展示。但根組件在SPA里是非常必要的,所以這種方式只適用小型頁面。

第二種:異步組件

異步組件在官方文檔已有說明,使用非常簡單:

<app>  <A></A>  <B></B></app>
new Vue({  components: {    A: { /*component-config*/ },    B (resolve) {      setTimeout(() => {        resolve({ /*component-config*/ })      }, 0);    }  }})

這里<B>組件是一個異步組件,會等到手動調用resolve函數時才開始初始化,而父組件<app>也不必等待<B>先初始化完。

我們利用setTimeout(fn, 0)將<B>的初始化放在隊列最后,結果就是頁面會在<A>初始化完后立刻顯示,然后再顯示<B>。如果你的頁面有幾十個組件,那么把非首屏的組件全設成異步組件,頁面顯示速度會有明顯的提升。

你可以封裝一個簡單的函數來簡化這個過程:

function deferLoad (component, time = 0) {  return (resolve) => {    window.setTimeout(() => resolve(component), time)  };}new Vue({  components: {    B: deferLoad( /*component-config*/ ),    // 100ms后渲染    C: deferLoad( /*component-config*/, 100 )  }})

看起來很美好,但這種方式也有問題,考慮下這樣的結構:

<app>  <title></title>  <A></A>  <title></title>  <B></B>  <title></title>  <C></C></app>

還是按照上面的異步組件做法,這時候就需要考慮把哪些組件設成異步的了。如果把A、B、C都設成異步的,那結果就是3個<title>會首先渲染出來,頁面渲染的過程在用戶看來非常奇怪,并不是預期中的從上到下順序渲染。

第三種:v-if 和 terminal指令

這是我推薦的一種做法,簡單有效。還是那個結構,我們給要延遲渲染的組件加上v-if:

<app>  <A></A>  <B v-if="showB"></B>  <C v-if="showC"></C></app>
new Vue({  data: {    showB: false,    showC: false  },  created () {    // 顯示B    setTimeout(() => {      this.showB = true;    }, 0);    // 顯示C    setTimeout(() => {      this.showC = true;    }, 0);  }});

這個示例寫起來略顯亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

成人在线中文字幕| 亚洲国产私拍精品国模在线观看| 91免费的视频在线播放| 精品国产老师黑色丝袜高跟鞋| 超薄丝袜一区二区| 日韩久久精品成人| 亚洲热线99精品视频| 日韩电影免费观看中文字幕| 亚洲无亚洲人成网站77777| 亚洲欧洲在线视频| 日韩精品中文字幕久久臀| 日韩av在线看| 欧美日韩在线影院| 亚洲美女精品成人在线视频| 亚洲精品视频在线播放| 欧美日韩性生活视频| 国产精品吴梦梦| 精品亚洲一区二区三区四区五区| 国产日产久久高清欧美一区| 国产激情综合五月久久| 91在线无精精品一区二区| 亚洲欧美激情一区| 亚洲第一福利网| 欧美成人合集magnet| 国产精品视频久久| 成人国产精品一区| 久久久久久尹人网香蕉| 亚洲色图第三页| 日韩电影免费观看在线观看| 欧美精品在线观看91| 国产福利视频一区| 日本道色综合久久影院| 狠狠躁夜夜躁人人爽天天天天97| 国产精品高潮呻吟久久av野狼| 国产精品av在线播放| 欧美日韩中文字幕在线| 亚洲第一精品夜夜躁人人躁| 中文字幕欧美精品在线| 91亚洲精品久久久| 久久综合免费视频| 亚洲男人第一av网站| 国产精品久久久久久久久男| 国产精品视频久久久久| 久久久精品一区| 亚洲欧洲国产一区| 国产亚洲精品一区二555| 久久精品91久久香蕉加勒比| 欧美日本在线视频中文字字幕| 久久久久久中文| 亚洲午夜国产成人av电影男同| 欧美午夜性色大片在线观看| 中文字幕亚洲天堂| 亚洲专区国产精品| 尤物九九久久国产精品的分类| 一本色道久久88综合亚洲精品ⅰ| 96sao精品视频在线观看| 亚洲天天在线日亚洲洲精| 亚洲男人的天堂在线| 亚洲一区二区三区成人在线视频精品| 国产日韩欧美在线看| 欧美国产日产韩国视频| 亚洲欧美中文日韩在线v日本| 日韩在线中文视频| 九九精品视频在线| 日韩精品在线私人| 久久久噜噜噜久噜久久| 少妇av一区二区三区| 日本在线精品视频| 自拍偷拍亚洲欧美| 成人精品aaaa网站| 欧美理论电影在线播放| 国产热re99久久6国产精品| 久久久久久久国产精品| 亚洲成人激情在线| 奇米成人av国产一区二区三区| 欧美成人剧情片在线观看| 国产精品视频免费在线观看| 亚洲欧美日韩天堂一区二区| 91免费福利视频| 国产精品精品久久久久久| 亚洲电影天堂av| 亚洲xxxx妇黄裸体| 久久影视电视剧免费网站| 亚洲精品在线观看www| 日本久久久久久久| 亚洲美女动态图120秒| 91精品视频在线| 2019国产精品自在线拍国产不卡| 日韩中文字幕欧美| 91免费高清视频| 日韩免费在线免费观看| 久久成人人人人精品欧| 国产98色在线| 国产精品视频一区二区三区四| 国产日韩欧美在线观看| 欧美第一淫aaasss性| 亚洲视频在线视频| 国产美女久久久| 日韩免费电影在线观看| 精品国产乱码久久久久久天美| 欧美一级黑人aaaaaaa做受| 精品国产一区二区三区久久久狼| 国产精品久久久久久久久久久久| 一区二区中文字幕| 国产在线一区二区三区| 亚洲国产精品嫩草影院久久| 成人乱色短篇合集| 一区二区三区天堂av| 国产精品亚洲一区二区三区| 97碰碰碰免费色视频| 久久天天躁日日躁| 日韩在线视频网| 国产精品久久久久久久久免费| 不卡av电影院| 日韩av手机在线| 欧美性xxxxx极品娇小| 欧洲亚洲在线视频| 久久久久国产精品免费网站| 国产丝袜精品第一页| 国产欧美日韩精品丝袜高跟鞋| 亚洲最大福利网站| 亚洲美女久久久| 日韩美女在线播放| 国内精品美女av在线播放| 91免费精品国偷自产在线| 国产精品影院在线观看| 精品人伦一区二区三区蜜桃网站| 日韩欧美第一页| 中文字幕一区日韩电影| 成人写真福利网| 日本道色综合久久影院| 亚洲午夜未满十八勿入免费观看全集| 国产精品视频一区二区三区四| 国产精品久久久久一区二区| 欧美成人三级视频网站| 国产丝袜一区二区三区免费视频| 91po在线观看91精品国产性色| 91视频国产一区| 亚洲欧洲免费视频| 91精品在线看| 92版电视剧仙鹤神针在线观看| 中文字幕亚洲第一| 欧美日韩中文字幕综合视频| 亚洲欧美激情精品一区二区| 欧美肥婆姓交大片| 98视频在线噜噜噜国产| 国产成人激情小视频| 欧美午夜精品伦理| 国产欧美在线播放| 中文字幕亚洲自拍| 日韩高清免费在线| 亚洲精品国产综合久久| 国产丝袜一区二区三区免费视频| 日韩av免费网站| 午夜免费在线观看精品视频| 欧美在线视频网| 国产精品高潮粉嫩av| 国产精品69av| 亚洲一区二区三区sesese| 欧美亚洲视频在线看网址| 91精品国产综合久久香蕉的用户体验| 国产日本欧美视频| 57pao成人永久免费视频| 亚洲人成人99网站|