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

styled-components?性能詳解

 更新時間:2023年01月28日 08:45:29   作者:天行無忌  
這篇文章主要為大家介紹了styled-components?的性能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

styled-components 是一個流行的 React 庫,一個 CSS in JS 樣式框架,它使用 JavaScript 中的標記模板字面量和 CSS 的強大功能來提供一個平臺,允許編寫實際的 CSS 來設置 React 組件的樣式,同時兼顧開發(fā)人員體驗和性能。

基本上是在編寫 CSS,但使用的是 Javascript。實際上可以命名自己的標簽,以便更容易識別它們??梢允褂?Javascript 更改屬性的值,這非常適合具有動態(tài)內(nèi)容的應用程序。

官方網(wǎng)站:styled-components.com/

下面是一段使用的代碼:

const Button = styled.a`
  /* This renders the buttons above... Edit me! */
  display: inline-block;
  border-radius: 3px;
  padding: 0.5rem 0;
  margin: 0.5rem 1rem;
  width: 11rem;
  background: transparent;
  color: white;
  border: 2px solid white;
  /* The GitHub button is a primary button
   * edit this to target it specifically! */
  ${props => props.primary && css`
    background: white;
    color: black;
  `}
`

styled-components 的痛點

  • 一個額外的包裹
  • 更大的 JS 包
  • 影響 CSS 性能(特定環(huán)境)
  • CSS文件和JS文件的處理方式不一樣

現(xiàn)在使用谷歌瀏覽器開發(fā)工具 Lighthouse 來對比一下樣式組件性能和模塊化CSS的性能。測試的環(huán)境將模擬安卓環(huán)境、網(wǎng)絡設置為慢速3G模式、CPU設置為 4 核。

開始之前先簡單介紹幾個前端性能指標:

  • FCP:First Contentful Paint 首次內(nèi)容繪制,指瀏覽器渲染出第一個內(nèi)容的時間,內(nèi)容可以是文本、img標簽、SVG元素等,但是不包括 iframe 和白色背景的 Canvas 元素。
  • SI:Speed Index 首屏展現(xiàn)平均值,這是 Lighthouse 的六項性能指標之一。
  • LCP:Largest Contentful Paint 最大內(nèi)容繪制,指可視區(qū)內(nèi)容最大的可見元素出現(xiàn)在屏幕上的時間,衡量加載性能的核心指標。
  • TTI:Time to Interactive 可交互時間,該指標用于測量頁面從開始加載到主要子資源完成渲染,并能夠快速、可靠地響應用戶輸入所需的時間。

styled-components 性能

  • 平均性能范圍:13809 毫秒
  • FCP:2.2
  • SI:9.1
  • LCP:13.1
  • TTI:13.2

模塊化 CSS 性能

  • 平均性能范圍:8995 毫秒
  • FCP:2.1
  • SI:7.6
  • LCP:12
  • TTI:12.5

從上述兩組數(shù)據(jù)看到,在平均性能范圍內(nèi),styled-components 節(jié)省了 4814 毫秒!考慮到 CSS 規(guī)則根本沒有改變這一事實,速度指數(shù)和其他指標的提升也相當大。上述性能數(shù)據(jù)是有一定的前提環(huán)境,但從官方的介紹來看,整體性能還是不錯的。

結論

可以在 React 中使用這兩種技術并創(chuàng)建令人驚嘆的WEB應用,這只是為正確的工作選擇正確的工具的問題。如果有一個高度可定制的儀表板將代碼庫更改為模塊化 CSS 可能沒有意義。然而,如果用戶來自移動設備,建議嘗試看看WEB應用使用模塊化 CSS 的速度有多快。最終選用什么方式還有其他的決定因素,性能只是其中之一。

以上就是styled-components 性能詳解的詳細內(nèi)容,更多關于styled-components 性能的資料請關注腳本之家其它相關文章!

相關文章

  • React父子組件間的通信是怎樣進行的

    React父子組件間的通信是怎樣進行的

    這篇文章主要介紹了React中父子組件通信詳解,在父組件中,為子組件添加屬性數(shù)據(jù),即可實現(xiàn)父組件向子組件通信,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2023-03-03
  • React虛擬列表的實現(xiàn)代碼

    React虛擬列表的實現(xiàn)代碼

    最近看了vueuse的useVirtualList的實現(xiàn)方式,發(fā)現(xiàn)虛擬滾動效果不錯,就嘗試著同樣的寫法改成react版本,虛擬列表主要包含三部分組成,offset,viewcapacity,overscan,本文就給大家介紹一下React虛擬列表的實現(xiàn),需要的朋友可以參考下
    2023-08-08
  • ReactNative支付密碼輸入框?qū)崿F(xiàn)詳解

    ReactNative支付密碼輸入框?qū)崿F(xiàn)詳解

    這篇文章主要為大家介紹了ReactNative支付密碼輸入框?qū)崿F(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 利用React實現(xiàn)虛擬列表的示例代碼

    利用React實現(xiàn)虛擬列表的示例代碼

    虛擬列表,其實就是將一個原本需要全部列表項的渲染的長列表,改為只渲染可視區(qū)域內(nèi)的列表項,但滾動效果還是要和渲染所有列表項的長列表一樣。本文就將利用React實現(xiàn)虛擬列表,需要的可以參考一下
    2022-08-08
  • React Redux使用配置詳解

    React Redux使用配置詳解

    react-redux是redux官方react綁定庫,能夠使react組件從redux store中讀取數(shù)據(jù),并且向store分發(fā)actions以此來更新數(shù)據(jù),這篇文章主要介紹了react-redux的設置,需要的朋友可以參考下
    2022-08-08
  • React的事件處理你了解嗎

    React的事件處理你了解嗎

    這篇文章主要為大家詳細介紹了React的事件處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳解React 父組件和子組件的數(shù)據(jù)傳輸

    詳解React 父組件和子組件的數(shù)據(jù)傳輸

    這篇文章主要介紹了React 父組件和子組件的數(shù)據(jù)傳輸?shù)南嚓P資料,幫助大家更好的理解和學習使用React,感興趣的朋友可以了解下
    2021-04-04
  • 深入React?18源碼useMemo?useCallback?memo用法及區(qū)別分析

    深入React?18源碼useMemo?useCallback?memo用法及區(qū)別分析

    這篇文章主要為大家介紹了React?18源碼深入分析useMemo?useCallback?memo用法及區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • react?hooks?計數(shù)器實現(xiàn)代碼

    react?hooks?計數(shù)器實現(xiàn)代碼

    這篇文章主要介紹了react?hooks計數(shù)器實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • React用法之高階組件的用法詳解

    React用法之高階組件的用法詳解

    高階組件也就是我們常說的HOC,是React中用于復用組件邏輯的一種高級技巧。這篇文章主要通過一些示例帶大家學習一下高階組件的使用,希望對大家有所幫助
    2023-04-04

最新評論