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

首頁 > 編程 > JavaScript > 正文

總結4個方面優化Vue項目

2019-11-19 12:09:53
字體:
來源:轉載
供稿:網友

運行時優化

1、使用v-if代替v-show

兩者的區別是:v-if不渲染DOM,v-show會預渲染DOM

除以下情況使用v-show,其他情況盡量使用v-if

有預渲染需求

需要頻繁切換顯示狀態

2、v-for必須加上key,并避免同時使用v-if

一般我們在兩種常見的情況下會傾向于這樣做:

為了過濾一個列表中的項目
比如 v-for="user in users" v-if="user.isActive"。在這種情形下,請將 users替換為一個計算屬性 (比如 activeUsers),讓其返回過濾后的列表

為了避免渲染本應該被隱藏的列表
比如 v-for="user in users" v-if="shouldShowUsers"。這種情形下,請將 v-if 移動至容器元素上 (比如 ul, ol)

3、事件及時銷毀

Vue組件銷毀時,會自動清理它與其它實例的連接,解綁它的全部指令及事件監聽器,但是僅限于組件本身的事件。

也就是說,在js內使用addEventListener等方式是不會自動銷毀的,我們需要在組件銷毀時手動移除這些事件的監聽,以免造成內存泄露,如:

created() { addEventListener('touchmove', this.touchmove, false)},beforeDestroy() { removeEventListener('touchmove', this.touchmove, false)}

首屏優化

1、圖片裁剪、使用webp

  • 圖片需要裁剪,一般使用二倍圖即可
  • 盡量使用webp圖片
  • 如果使用了vue-lazyload插件,可以使用以下方法一鍵替換webp(替換使用v-lazy指令的圖片)
Vue.use(VueLazyload, { error: require('./assets/img/defaultpic_small.png'), filter: { webp (listener: any, options: any) { if (!options.supportWebp) return // listener.src += '.webp' } }});

2、資源提前請求

經測試,Vue項目中各文件的加載順序為:router.js、main.js、App.vue、[-page-].vue、[component].vue,如圖:

其中,router的加載時間相比于page.vue快近100ms,如果page.vue的文件較多,時間差異會更大

所以,可以在頁面掛載、渲染的同時去請求接口數據,如在router.js中請求數據:

import Router from 'vue-router'import store from './store'store.dispatch('initAjax')

3、異步路由

使用異步路由可以根據URL自動加載所需頁面的資源,并且不會造成頁面阻塞,較適用于移動端頁面

建議主頁面直接import,非主頁面使用異步路由

使用方式:

{ path: '/order', component: () => import('./views/order.vue')}

4、異步組件

不需要首屏加載的組件都使用異步組件的方式來加載(如多tab),包括需要觸發條件的動作也使用異步組件(如彈窗)
使用方式為:v-if來控制顯示時機,引入組件的Promise即可

<template> <div> <HellowWorld v-if="showHello" /> </div></template><script>export default { components: { HellowWorld: () => import('../components/HelloWorld.vue') }, data() { return { showHello: false } }, methods: { initAsync() { addEventListener('scroll', (e) => { if (scrollY > 100) { this.showHello = true } }) } }}</script>

5、使用輕量級插件、異步插件

使用webpack-bundle-analyzer查看項目所有包的體積大小,較大的插件包盡量尋找輕量級的替代方案

首屏用不到的插件、或只在特定場景才會用到的插件使用異步加載(如定位插件,部分情況可以通過URL傳遞經緯度;或生成畫報插件,需要在點擊時觸發);插件第一次加載后緩存在本地,使用方式為:

// 以定位插件為例const latitude = getUrlParam('latitude')const longitude = getUrlParam('longitude')// 如果沒有經緯度參數,則使用定位插件來獲取經緯度if (!latitude || !longitude) { // 首次加載定位插件 // webpack4寫法,若使用webpack3及以下,則await import('locationPlugin')即可 if (!this.WhereAmI) this.WhereAmI = (await import('locationPlugin')).default // do sth...}

6、公用CDN

使用公用的CDN資源,可以起到緩存作用,并減少打包體積

網絡優化

1、減少網絡請求

瀏覽器對同一時間針對同一域名下的請求有一定數量限制(一般是6個),超過限制數目的請求會被阻塞
首屏盡可能減少同域名的請求,包括接口和js;按需減少首屏的chunk.js,合并接口請求

2、合理使用preload、dns-prefetch、prefetch

  • preload具有較高的加載優先級,它可以利用間隙時間預加載資源,將加載和執行分離開,不阻塞渲染和document的onload事件
  • 每次與域名連接都需要進行DNS解析,使用dns-prefetch可以預解析域名的DNS
  • prefetch會預加載頁面將來可能用到的一些資源,優先級較低;對首屏渲染要求較高的項目不建議使用

三者的使用方式,在head標簽中添加(vue-cli-3已經做了相應配置):

<head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="icon" href="/dist/favicon.ico" rel="external nofollow" /> <!-- dns-prefetch寫法 --> <link rel="dns-prefetch"  rel="external nofollow" /> <title>md-config</title> <!-- preload寫法,as屬性必須 --> <link href="/dist/css/app.52dd885e.css" rel="external nofollow" rel="preload" as="style" /> <link href="/dist/js/app.05faf3b5.js" rel="external nofollow" rel="preload" as="script" /> <link href="/dist/js/chunk-vendors.04343b1f.js" rel="external nofollow" rel="external nofollow" rel="preload" as="script" /> <!-- prefetch寫法 --> <link href="/dist/js/chunk-vendors.04343b1f.js" rel="external nofollow" rel="external nofollow" rel="prefetch" /></head>

3、PWA

PWA支持緩存HTML文檔、接口(get)等,降低頁面白屏時間
這樣即使在弱網甚至斷網情況下,也能迅速展示出頁面

編譯打包優化

1、升級Vue-Cli-3

vue-cli-3采用webpack4+babel7,對編譯打包方面做了很多優化(成倍的提升),使用yarn作為包管理工具,并且對很多優化的最佳實踐做了默認配置

經測試,將項目從vue-cli-2遷移到vue-cli-3之后,速度變化為:

編譯時間:44s --> 7s
打包時間:55s --> 11s

效率提升非常明顯

2、SSR

對加載性能要求較高的項目建議升級SSR

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91视频国产一区| 另类美女黄大片| 欧美激情精品在线| 欧美性猛交xxxx黑人| 日av在线播放中文不卡| 精品女同一区二区三区在线播放| 亚洲免费一级电影| 亚洲qvod图片区电影| 国产免费一区二区三区在线能观看| 国产一区深夜福利| 国产精品h片在线播放| 久久久精品日本| 91国内在线视频| 欧美日韩国产页| 国产一区二区三区丝袜| 亚洲跨种族黑人xxx| 久久久噜噜噜久久久| 国产精品久久久久久中文字| 日韩av在线播放资源| 精品日本高清在线播放| 国产精品美女久久| 久久精品99国产精品酒店日本| 亚洲一区二区三区视频播放| 亚洲国产另类 国产精品国产免费| 主播福利视频一区| 欧美日韩一区二区在线| 国产成人小视频在线观看| 国产精品视频yy9099| 91嫩草在线视频| 国产欧美日韩免费| 亚洲无限乱码一二三四麻| 欧美国产极速在线| 在线播放日韩精品| 国产香蕉精品视频一区二区三区| 国产精品影院在线观看| 欧美xxxx做受欧美| 人人爽久久涩噜噜噜网站| 欧美成人激情视频| 性欧美xxxx交| 中文字幕亚洲情99在线| 国产美女精品视频免费观看| 亚洲第一天堂av| 亚洲a区在线视频| 日本精品久久中文字幕佐佐木| 国产69精品久久久久9| 黑丝美女久久久| 国产精品入口日韩视频大尺度| 日韩激情视频在线播放| 91久久夜色精品国产网站| 亚洲黄页网在线观看| 亚洲第一网站免费视频| 亚洲国产欧美在线成人app| 亚洲欧洲一区二区三区在线观看| 日本一区二区不卡| 亚洲国产私拍精品国模在线观看| 992tv成人免费视频| 亚洲欧美成人网| 久久久免费在线观看| 中文字幕欧美日韩va免费视频| 中文字幕少妇一区二区三区| 亚洲影院色无极综合| 一本久久综合亚洲鲁鲁| 日韩网站免费观看高清| 亚洲成av人片在线观看香蕉| 亚洲理论在线a中文字幕| 欧美另类精品xxxx孕妇| 日韩成人在线电影网| 亚洲成人精品av| 日韩av免费在线| 欧美成人午夜剧场免费观看| 久久男人资源视频| 国产91精品久久久久| 欧美精品18videosex性欧美| 久久精品视频亚洲| 日韩av在线网站| 亚洲精品国产综合区久久久久久久| 国产国语videosex另类| 亚洲精选中文字幕| 日韩av免费网站| 欧美肥臀大乳一区二区免费视频| 在线色欧美三级视频| 欧美黑人一区二区三区| 在线中文字幕日韩| 日日狠狠久久偷偷四色综合免费| 九九精品在线观看| 国产玖玖精品视频| 亚洲精品综合久久中文字幕| 国产这里只有精品| 国精产品一区一区三区有限在线| 亚洲国产成人精品女人久久久| 国产精品成人av在线| 色老头一区二区三区| 亚洲国产成人久久综合一区| 久久九九精品99国产精品| 久久香蕉国产线看观看网| 日韩欧美一区二区三区| 亚洲福利视频网| 成人激情综合网| 久久资源免费视频| 亚洲片在线资源| 亚洲欧美另类中文字幕| 亚洲精品影视在线观看| 欧美疯狂性受xxxxx另类| 51精品国产黑色丝袜高跟鞋| 国产精品一二区| 国产免费一区二区三区在线能观看| 奇米四色中文综合久久| 久久精品免费电影| 久久成人精品一区二区三区| 中文字幕日韩专区| 欧美日产国产成人免费图片| 亚洲大尺度美女在线| 亚洲精品国产拍免费91在线| 一本一道久久a久久精品逆3p| 国产香蕉精品视频一区二区三区| 亚洲国产精品女人久久久| 欧美多人乱p欧美4p久久| 最近2019好看的中文字幕免费| 日韩av免费在线观看| 欧美激情第1页| 精品久久久久久久大神国产| 久久久久中文字幕2018| 成人网页在线免费观看| 亚洲综合中文字幕在线| 91免费观看网站| 成人黄色生活片| 91大神福利视频在线| 色婷婷综合成人| 成人久久久久爱| 国产在线视频欧美| 深夜精品寂寞黄网站在线观看| 亚洲欧美在线一区二区| 中文国产成人精品久久一| 日本精品视频网站| 成人a在线视频| 久久噜噜噜精品国产亚洲综合| 亚洲性av网站| 国产成人鲁鲁免费视频a| 日韩精品视频免费在线观看| 欧美大片va欧美在线播放| 国产精品久久久久久久久久小说| 国产成人精品国内自产拍免费看| 日韩中文第一页| 欧美大片大片在线播放| 亚洲电影免费在线观看| 97久久精品人人澡人人爽缅北| 精品国产一区二区三区四区在线观看| 欧美极品少妇xxxxⅹ免费视频| 法国裸体一区二区| 久久亚洲综合国产精品99麻豆精品福利| 久久久久在线观看| 一区二区成人精品| 欧美大尺度电影在线观看| 日韩高清电影好看的电视剧电影| 最新日韩中文字幕| 国产精品久久久久久久久久东京| 欧美日韩福利在线观看| 国产不卡精品视男人的天堂| 欧美精品日韩www.p站| 91欧美精品午夜性色福利在线| 一区二区三区无码高清视频| 国产精品久久一| 在线亚洲男人天堂| 神马国产精品影院av|