日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一個超冷門的 Vue3 內置組件,幫我優化了66%的性能!

來源: 責編: 時間:2024-02-29 14:41:15 163觀看
導讀前言大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~背景最近項目中有一個頁面,是之前的老頁面,頁面中的內容其實就是一個 Tabs 組件,有三個 Tab,分別展示不同的內容,但是也有共

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~94p28資訊網——每日最新資訊28at.com

背景

最近項目中有一個頁面,是之前的老頁面,頁面中的內容其實就是一個 Tabs 組件,有三個 Tab,分別展示不同的內容,但是也有共同內容,那就是共同都有一個一個報表組件94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

下面是大致的代碼展示如下,為了方便大家閱讀嗎,我把代碼簡化了94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

Chart.vue中會進行大量的請求,這里我就直接簡單模擬一下了94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

但是當我閱讀到這一段舊代碼時,我就覺得不太妙,這代碼這么寫,顯然是沒有考慮到性能問題,我們可以切換 Tab1 -> Tab2 -> Tab3 ,會發現 Chart.vue 請求了三次!!!94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

但是其實只需要請求一次就夠了,因為其實都是一樣的數據、一樣的組件,并且 Chart.vue 內部的請求其實是很多個的,這樣就大大浪費了瀏覽器資源94p28資訊網——每日最新資訊28at.com

改進?

其實很多人第一時間就是想到了,我們可以只請求一次,然后讓這三個 Chart 共用同一份數據,這樣做就能保證只請求一次了94p28資訊網——每日最新資訊28at.com

確實,這樣做大大提升了性能,大致的代碼如下,也就是把請求放在 Index 中去做,然后把數據傳給三個 Chart94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

Chart 中只需要接收,并渲染即可94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

現在切換 Tab1 -> Tab2 -> Tab3,發現確實只請求了一次了,這對于這個頁面,簡直是很大的提升!94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

結束了嗎?

其實 Chart 內部拿到數據之后,會拿著數據去渲染很多的東西(這里我簡化了而已,其實很多的)。94p28資訊網——每日最新資訊28at.com

剛剛我們只是保證了請求是一次,但是我們并沒有保證渲染是一次哦~我們可以給 Chart 的 onMounted 中加個打印94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

切換 Tab1 -> Tab2 -> Tab3,可以看到總共渲染了三次,這其實也降低了頁面的性能,理想是只渲染一次即可94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

巧妙使用 Teleport

也就是,我需要做到只渲染一次 Chart,但是需要渲染到不同的三個 Tab 中去~94p28資訊網——每日最新資訊28at.com

那就只能是動態地去渲染了,根據選擇不同的 Tab,去決定 Chart 渲染到哪個 Tab 下了94p28資訊網——每日最新資訊28at.com

這時候我就想到了 Teleport 了,這是一個 Vue3 提供的 全局組件,類似于一個傳送門,能把一個 DOM 節點渲染到另一個 DOM 節點上94p28資訊網——每日最新資訊28at.com

改進后的代碼如下94p28資訊網——每日最新資訊28at.com

圖片圖片94p28資訊網——每日最新資訊28at.com

現在切換 Tab1 -> Tab2 -> Tab3,可以看到94p28資訊網——每日最新資訊28at.com

  • 請求只一次
  • 渲染只一次

真是太妙了!!!94p28資訊網——每日最新資訊28at.com

圖片 圖片 94p28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-75321-0.html一個超冷門的 Vue3 內置組件,幫我優化了66%的性能!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Java的函數式接口編程示例

下一篇: 是否還記得SpringMVC中的@MatrixVariable注解?

標簽:
  • 熱門焦點
  • 太卷!Redmi MAX 100英寸電視便宜了:12999元買Redmi史上最大屏

    8月5日消息,從小米商城了解到,Redmi MAX 100英寸巨屏電視日前迎來官方優惠,到手價12999元,比發布價便宜了7000元,在大屏電視市場開卷。據了解,Redmi MAX 100
  • 28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

    前言在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。注解
  • 線程通訊的三種方法!通俗易懂

    線程通信是指多個線程之間通過某種機制進行協調和交互,例如,線程等待和通知機制就是線程通訊的主要手段之一。 在 Java 中,線程等待和通知的實現手段有以下幾種方式:Object 類下
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • 2023 年的 Node.js 生態系統

    隨著技術的不斷演進和創新,Node.js 在 2023 年達到了一個新的高度。Node.js 擁有一個龐大的生態系統,可以幫助開發人員更快地實現復雜的應用。本文就來看看 Node.js 最新的生
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數或類的行為。裝飾器本質上是一個函數,它接受另一個函數或類作為參數,并返回一個新的函數或類。它們通常用
  • 19個 JavaScript 單行代碼技巧,讓你看起來像個專業人士

    今天這篇文章跟大家分享18個JS單行代碼,你只需花幾分鐘時間,即可幫助您了解一些您可能不知道的 JS 知識,如果您已經知道了,就當作復習一下,古人云,溫故而知新嘛。現在,我們就開始今
  • 一文掌握 Golang 模糊測試(Fuzz Testing)

    模糊測試(Fuzz Testing)模糊測試(Fuzz Testing)是通過向目標系統提供非預期的輸入并監視異常結果來發現軟件漏洞的方法。可以用來發現應用程序、操作系統和網絡協議等中的漏洞或
  • 華為開發者大會2023日程公開:開設鴻蒙HarmonyOS 4體驗區

    IT之家 7 月 31 日消息,華為今日公布了 HDC.Together 開發者大會 2023 的詳細日程。整場大會將于 8 月 4 日-6 日之間舉行,屆時將發布最新一代鴻蒙 H
Top 主站蜘蛛池模板: 韶山市| 偃师市| 天镇县| 清涧县| 兴化市| 宾川县| 德钦县| 汉源县| 珠海市| 封开县| 大港区| 石楼县| 黄陵县| 平原县| 东阳市| 定结县| 阜阳市| 延长县| 天祝| 连江县| 玉山县| 来凤县| 当阳市| 湖南省| 嘉祥县| 大关县| 甘孜| 齐齐哈尔市| 鲁甸县| 松潘县| 连州市| 通许县| 瑞金市| 临桂县| 综艺| 城步| 美姑县| 扎赉特旗| 阆中市| 二连浩特市| 海晏县|