国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

最全 Vue 性能優(yōu)化方案

這篇具有很好參考價(jià)值的文章主要介紹了最全 Vue 性能優(yōu)化方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最全 Vue 性能優(yōu)化方案

當(dāng)涉及到 Vue 應(yīng)用的性能優(yōu)化時(shí),有許多技術(shù)和策略可以幫助提升應(yīng)用的性能并改善用戶體驗(yàn)。以下總結(jié)了常用的十種 Vue 的性能優(yōu)化方案:

一、盡可能使用 v-show 替換 v-if

因?yàn)?v-show 本質(zhì)上是通過(guò) css 控制元素的顯示與隱藏,而 v-if 是通過(guò)操作 dom 來(lái)控制元素的顯示與隱藏,頻繁操作 dom 會(huì)導(dǎo)致性能有所影響

二、使用 v-for 必須添加 key

在刪除數(shù)據(jù)時(shí),由于沒(méi)有綁定 key,不確定刪除的是哪個(gè),就會(huì)把整個(gè)虛擬 dom 重新渲染,這樣對(duì)性能不太友好。

但如果設(shè)置了 key,比如 k 的值為 x,那么在刪除數(shù)據(jù)時(shí)候只會(huì)把 domx 的數(shù)據(jù)刪掉,并不會(huì)重新渲染整個(gè) dom。這樣一來(lái)對(duì)性能有很大的提高

三、避免 v-for 與 v-if 一起使用

當(dāng) v-forv-if 結(jié)合使用時(shí),Vue 需要在每次渲染時(shí)都重新計(jì)算列表中每個(gè)元素是否滿足 v-if 的條件,這會(huì)導(dǎo)致不必要的性能開銷。

如果將 v-if 放在父元素上時(shí),v-for 會(huì)在每次重新渲染時(shí)都完整遍歷整個(gè)列表,判斷每個(gè)元素是否滿足條件。這樣也會(huì)導(dǎo)致性能下降,尤其在列表較大時(shí)更為明顯。

為了避免這種性能問(wèn)題,推薦的做法是將 v-if 放在包裹在元素內(nèi)部,而不是包裹在元素上,這樣可以減少不必要的遍歷次數(shù),提升性能。

<div v-for="item in data" :key="item.id">
  <div v-if="item.condition">
    <!-- 具體元素內(nèi)容 -->
  </div>
</div>

四、合理使用 watch 和 computed

watch 適用于執(zhí)行異步或開銷較大的操作,或者需要對(duì)數(shù)據(jù)變化作出特定響應(yīng)的場(chǎng)景。

computed 用于根據(jù)已有的響應(yīng)式數(shù)據(jù)計(jì)算出一個(gè)新的值,它會(huì)根據(jù)相關(guān)的響應(yīng)式數(shù)據(jù)進(jìn)行緩存,只在相關(guān)響應(yīng)式數(shù)據(jù)改變時(shí)進(jìn)行重新計(jì)算。這樣可以避免不必要的重復(fù)計(jì)算,提高性能。

簡(jiǎn)單來(lái)說(shuō): 使用 watch 監(jiān)聽數(shù)據(jù)變化,適合處理復(fù)雜操作或需要特定響應(yīng)的情況;使用 computed 計(jì)算屬性,可以根據(jù)已有數(shù)據(jù)計(jì)算新值并自動(dòng)緩存,提高性能。合理使用這兩個(gè)功能可以讓代碼更易讀和更高效。

組件緩存
組件緩存是指將組件的狀態(tài)緩存起來(lái),當(dāng)組件再次被渲染時(shí),可以直接使用緩存的狀態(tài),而不需要重新渲染組件。

組件緩存的優(yōu)勢(shì)在于減少了組件的渲染次數(shù),從而降低了開銷。它對(duì)于包含大量靜態(tài)內(nèi)容的組件,如輪播圖、靜態(tài)文章等組件的性能優(yōu)化特別有效。因?yàn)檫@些組件的內(nèi)容往往不會(huì)隨著數(shù)據(jù)變化而發(fā)生改變,使用組件緩存可以將組件的渲染次數(shù)降至最低。

五、使用路由懶加載

{
    path: '/login',
    component: () => import('@/views/login/index'),
}
  1. 減輕初始加載: 通過(guò)路由懶加載,只有在使用到對(duì)應(yīng)的頁(yè)面時(shí)才會(huì)加載相關(guān)的代碼。這樣可以減少初始加載的代碼量,提升網(wǎng)頁(yè)的加載速度,特別是在應(yīng)用有很多頁(yè)面的情況下效果更為明顯。
  2. 提升頁(yè)面加載速度: 當(dāng)用戶訪問(wèn)某個(gè)具體的頁(yè)面時(shí),只需要加載該頁(yè)面所需的代碼,而不是一次性加載所有頁(yè)面的代碼。這樣可以減少請(qǐng)求的網(wǎng)絡(luò)帶寬和內(nèi)存占用,提升頁(yè)面加載速度,給用戶更好的體驗(yàn)。
  3. 優(yōu)化資源利用: 路由懶加載可以將應(yīng)用劃分為多個(gè)獨(dú)立的模塊,每個(gè)模塊可以按需加載,提高代碼的復(fù)用性和可維護(hù)性。同時(shí),由于只加載當(dāng)前需要的模塊,可以更好地控制資源的使用,避免一次性加載過(guò)多的資源。

簡(jiǎn)單來(lái)說(shuō): 路由懶加載可以讓網(wǎng)站加載更快,提高用戶體驗(yàn),同時(shí)也更好地利用資源、提高代碼可維護(hù)性。

使用懶加載
使用懶加載可以優(yōu)化同一時(shí)間減少 http 請(qǐng)求開銷。
比如頁(yè)面加載時(shí)讓他先加載部分?jǐn)?shù)據(jù),等用戶點(diǎn)擊下一頁(yè)或下拉之后再加載另一部分?jǐn)?shù)據(jù)

六、引入網(wǎng)絡(luò)資源

可以將靜態(tài)資源放在第三方 CDN 服務(wù)器上,比如 css、js、圖片、視頻、字體等

這樣做有以下好處:

  1. 提高頁(yè)面加載速度
  2. 減少項(xiàng)目打包之后的體積
  3. 利用瀏覽器緩存,不變動(dòng)的文件長(zhǎng)期緩存

七、盡可能使用按需導(dǎo)入

在項(xiàng)目中盡可能避免 * 導(dǎo)入全部而是使用按需導(dǎo)入,否則就會(huì)導(dǎo)入很多我們用不到的東西從而影響項(xiàng)目打包的體積大小以及頁(yè)面加載速度。

八、icon 使用精靈圖

默認(rèn)情況下頁(yè)面中有幾張圖片就會(huì)發(fā)起幾次請(qǐng)求,所以我們可以將圖片全部合成在一張圖中,然后通過(guò)操作 CSSbackground 屬性,控制背景的位置以及大小,來(lái)展示需要的部分。這樣可以減少 HTTP 請(qǐng)求壓力

九、銷毀資源

使用完某些代碼后一定要銷毀資源,比如定時(shí)器。一般在 beforeDestroy 中銷毀。這樣可以避免資源浪費(fèi)以及內(nèi)存泄露

十、使用節(jié)流防抖

節(jié)流:在一定時(shí)間間隔內(nèi)只執(zhí)行一次函數(shù)

function throttle(func, delay) {
  let timer = null;
  return function() {
    if (!timer) {
      timer = setTimeout(() => {
        func.apply(this, arguments);
        timer = null;
      }, delay);
    }
  };
}

防抖:在一定時(shí)間內(nèi)不能被再次觸發(fā)

function debounce(func, delay) {
  let timer = null;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(() => {
      func.apply(this, arguments);
    }, delay);
  };
}

使用

function onScroll() {
  console.log("Scroll event");
}

// 使用節(jié)流函數(shù)
const throttledScroll = throttle(onScroll, 200);
window.addEventListener("scroll", throttledScroll);

// 使用防抖函數(shù)
const debouncedScroll = debounce(onScroll, 200);
window.addEventListener("scroll", debouncedScroll);

這兩種技術(shù)可以在事件處理、滾動(dòng)加載、搜索框輸入等場(chǎng)景下有效地減少不必要的計(jì)算和操作,提升頁(yè)面性能和用戶體驗(yàn)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-856926.html

到了這里,關(guān)于最全 Vue 性能優(yōu)化方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 極致性能優(yōu)化:前端SSR渲染利器Qwik.js

    前端性能已成為網(wǎng)站和應(yīng)用成功的關(guān)鍵要素之一。用戶期望快速加載的頁(yè)面和流暢的交互,而前端框架的選擇對(duì)于實(shí)現(xiàn)這些目標(biāo)至關(guān)重要。然而,傳統(tǒng)的前端框架在某些情況下可能面臨性能挑戰(zhàn)且存在技術(shù)壁壘。 在這個(gè)充滿挑戰(zhàn)的背景下,我們引入了 Qwik.js 框架。Qwik.js 不僅

    2024年02月05日
    瀏覽(19)
  • 前端項(xiàng)目部署自動(dòng)檢測(cè)更新后通知用戶刷新頁(yè)面(前端實(shí)現(xiàn),技術(shù)框架vue、js、webpack)——方案一:編譯項(xiàng)目時(shí)動(dòng)態(tài)生成一個(gè)記錄版本號(hào)的文件

    前端項(xiàng)目部署自動(dòng)檢測(cè)更新后通知用戶刷新頁(yè)面(前端實(shí)現(xiàn),技術(shù)框架vue、js、webpack)——方案一:編譯項(xiàng)目時(shí)動(dòng)態(tài)生成一個(gè)記錄版本號(hào)的文件

    當(dāng)我們重新部署前端項(xiàng)目的時(shí)候,如果用戶一直停留在頁(yè)面上并未刷新使用,會(huì)存在功能使用差異性的問(wèn)題,因此,當(dāng)前端部署項(xiàng)目后,需要提醒用戶有去重新加載頁(yè)面。 vue、js、webpack 編譯項(xiàng)目時(shí)動(dòng)態(tài)生成一個(gè)記錄版本號(hào)的文件 輪詢(20s、自己設(shè)定時(shí)間)這個(gè)文件,判斷版

    2024年02月02日
    瀏覽(57)
  • 【前端八股文】瀏覽器系列:性能優(yōu)化——HTML、CSS、JS、渲染優(yōu)化

    【前端八股文】瀏覽器系列:性能優(yōu)化——HTML、CSS、JS、渲染優(yōu)化

    本系列目錄:【前端八股文】目錄總結(jié) 是以《代碼隨想錄》八股文為主的筆記。詳情參考在文末。 代碼隨想錄的博客_CSDN博客-leecode題解,ACM題目講解,代碼隨想錄領(lǐng)域博主 性能優(yōu)化,從以下幾個(gè)方面來(lái)進(jìn)行。 避免HTML中直接寫CSS viewport加速頁(yè)面渲染 使用語(yǔ)義化標(biāo)簽 減少標(biāo)簽的

    2023年04月20日
    瀏覽(53)
  • 快速搞定前端JS面試 -- 第十二章 運(yùn)行環(huán)境 (頁(yè)面加載、性能優(yōu)化、安全)

    快速搞定前端JS面試 -- 第十二章 運(yùn)行環(huán)境 (頁(yè)面加載、性能優(yōu)化、安全)

    4.?Window.onload和DOMContentLoaded 二、性能優(yōu)化 1、性能優(yōu)化原則 2、如何入手性能優(yōu)化 1.?資源合并 2.?緩存 3.?CDN 4.?SSR 5. 懶加載 6.?緩存DOM查詢 7.?盡早開始JS執(zhí)行 8. 防抖 9. 節(jié)流 三、安全 1.?XSS跨站請(qǐng)求攻擊 2.?XSRF跨站請(qǐng)求偽造 問(wèn)題解答 1. 從輸入url到顯示出頁(yè)面的整個(gè)過(guò)程 2.

    2024年04月16日
    瀏覽(25)
  • 極致性能優(yōu)化:前端SSR渲染利器Qwik.js | 京東云技術(shù)團(tuán)隊(duì)

    極致性能優(yōu)化:前端SSR渲染利器Qwik.js | 京東云技術(shù)團(tuán)隊(duì)

    前端性能已成為網(wǎng)站和應(yīng)用成功的關(guān)鍵要素之一。用戶期望快速加載的頁(yè)面和流暢的交互,而前端框架的選擇對(duì)于實(shí)現(xiàn)這些目標(biāo)至關(guān)重要。然而,傳統(tǒng)的前端框架在某些情況下可能面臨性能挑戰(zhàn)且存在技術(shù)壁壘。 在這個(gè)充滿挑戰(zhàn)的背景下,我們引入了 Qwik.js 框架。Qwik.js 不僅

    2024年02月05日
    瀏覽(24)
  • 快速搞定前端JS面試 -- 第十二章 運(yùn)行環(huán)境 (頁(yè)面加載、性能優(yōu)化、安全)(1)

    快速搞定前端JS面試 -- 第十二章 運(yùn)行環(huán)境 (頁(yè)面加載、性能優(yōu)化、安全)(1)

    4.?SSR 5. 懶加載 6.?緩存DOM查詢 7.?盡早開始JS執(zhí)行 8. 防抖 9. 節(jié)流 三、安全 1.?XSS跨站請(qǐng)求攻擊 2.?XSRF跨站請(qǐng)求偽造 問(wèn)題解答 1. 從輸入url到顯示出頁(yè)面的整個(gè)過(guò)程 2. Window.onload和DOMContentLoaded區(qū)別 3. 為何把css放在中 4. 為何把js放在最后 5. html中css寫在前js寫在后的優(yōu)點(diǎn) 6. 如何入

    2024年04月14日
    瀏覽(33)
  • 性能優(yōu)化之--- 項(xiàng)目打包優(yōu)化(vue)

    項(xiàng)目體積小也是優(yōu)化性能的一個(gè)方向,這里以 Vue 工程為例; 當(dāng)剛運(yùn)行項(xiàng)目的時(shí)候,發(fā)現(xiàn)剛進(jìn)入頁(yè)面,就將所有的js文件和css文件加載了進(jìn)來(lái),這一進(jìn)程十分的消耗時(shí)間。 如果打開哪個(gè)頁(yè)面就對(duì)應(yīng)的加載響應(yīng)頁(yè)面的js文件和css文件,那么頁(yè)面加載速度會(huì)大大提升。 vue官方文檔

    2024年02月09日
    瀏覽(17)
  • vue - 常見的性能優(yōu)化

    vue - 常見的性能優(yōu)化

    1, v-for 遍歷避免同時(shí)使用 v-if 在 Vue2 中 v-for 優(yōu)先級(jí)更高,所以編譯過(guò)程中會(huì)把列表元素全部遍歷生成虛擬 DOM,再來(lái)通過(guò) v-if 判斷符合條件的才渲染,就會(huì)有多余的邏輯判斷和造成性能的浪費(fèi),因?yàn)槲覀兿M氖遣环蠗l件的虛擬 DOM都不要生成; 1,為了過(guò)濾一個(gè)列表中的項(xiàng)

    2024年02月16日
    瀏覽(19)
  • 【 Vue3 性能優(yōu)化】頁(yè)面加載性能 與 更新性能

    Vue 在大多數(shù)常見場(chǎng)景下性能都是很優(yōu)秀的,通常不需要手動(dòng)優(yōu)化。然而,總會(huì)有一些具有挑戰(zhàn)性的場(chǎng)景需要進(jìn)行針對(duì)性的微調(diào)。 數(shù)字化管理平臺(tái) Vue3+Vite+VueRouter+Pinia+Axios+ElementPlus教程 權(quán)限系統(tǒng)-商城 個(gè)人博客地址 Web 性能優(yōu)化主要有兩個(gè)方面: 頁(yè)面加載性能 首次訪問(wèn)時(shí),應(yīng)

    2024年02月14日
    瀏覽(18)
  • Vue 項(xiàng)目性能優(yōu)化 — 實(shí)踐指南

    Vue 項(xiàng)目性能優(yōu)化 — 實(shí)踐指南

    Vue 框架通過(guò)數(shù)據(jù)雙向綁定和虛擬 DOM 技術(shù),幫我們處理了前端開發(fā)中最臟最累的 DOM 操作部分, 我們不再需要去考慮如何操作 DOM 以及如何最高效地操作 DOM;但 Vue 項(xiàng)目中仍然存在項(xiàng)目首屏優(yōu)化、Webpack 編譯配置優(yōu)化等問(wèn)題,所以我們?nèi)匀恍枰リP(guān)注 Vue 項(xiàng)目性能方面的優(yōu)化,

    2024年02月11日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包