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

React如何解決樣式污染問題

 更新時間:2023年11月14日 10:21:13   作者:埋頭敲代碼的小前端  
這篇文章主要介紹了React如何解決樣式污染問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

react樣式污染問題

在vue文件中我們使用scoped來進行css模塊化開發(fā),使其樣式互不受影響。

但是在react中沒有scoped屬性, 而react中我們發(fā)現css樣式設置也存在互相影響的問題。

(例如:改變全局樣式,設置的樣式不起效果,被其他地方的樣式覆蓋...)

但在react中可以利用module方法來解決:

(1)改樣式文件名。從 xx.css -> xx.module.css (React腳手架中的約定,與普通 CSS 作區(qū)分)

(2)將寫好的css樣式引入到對應組件中。

import styles from "xxx.module.css";

 一般命名為styles

(3) 通過 styles 對象訪問對象中的樣式名來設置樣式

注: 避免一個文件有相同的class名稱,只生效一個(最后一個覆蓋之前所有的)

解析完的類名是一個哈希串。

// css類名是index.module.scss中定義的類名
<div className={styles.css類名}></div>

(4)注意: css類名中如果有 '-' 則要改為styles[ css類名 ]。因為最終這個類名會生成為styles對象上的一個屬性。一般推薦使用小駝峰命名法

react防樣式污染小助手-css module

react與vue不同,vue可以通過在script中設置scoped來限制樣式的生效范圍,不至于樣式污染,

CSS 的局部作用域解決了大問題。在w3c 規(guī)范中,CSS 始終是「全局的」。在傳統的 web 開發(fā)中,最為頭痛的莫過于處理 CSS 問題。因為全局性,明明定義了樣式,但就是不生效,原因可能是被其他樣式定義所強制覆蓋。接手老項目更是噩夢,改對了一個地方的樣式,卻把另外許多地方的樣式打亂。

CSS modules 是從工具層面給出的一套生成局部 CSS 的規(guī)范,本質還是生成全局唯一的 CSS 定義。webpack 實現了這套規(guī)范。

1.css modules是默認開啟的,所以我們只需要將原先的.less或.css文件名稱改為.module.less

例:index.css改為index.module.css

//index.module.css
.app {
  background: red;
}

2.在react的js文件引入:

import index from './index.module.css'

3.使用

    <div className={index.App}>
     123
    </div>

4.

可以看到class是一堆啥玩意的名字,實際上它 是 App--<hash數值>,這個 hash 值是全局唯一的,比如通過文件路徑來獲得,這樣 class 名稱就做到了全局唯一。

通過全局唯一的 CSS 命名,我們變相地獲得了局部作用域的 CSS(scoped CSS)。

如果一個 CSS 文件僅僅是作用在某個局部的話,我們稱這樣一個 CSS 文件為 CSS module

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • React BootStrap用戶體驗框架快速上手

    React BootStrap用戶體驗框架快速上手

    這篇文章主要介紹了React BootStrap用戶體驗框架快速上手的相關知識,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-03-03
  • 關于react中useCallback的用法

    關于react中useCallback的用法

    這篇文章主要介紹了關于react中useCallback的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解在React項目中如何集成和使用web worker

    詳解在React項目中如何集成和使用web worker

    在復雜的React應用中,某些計算密集型或耗時操作可能會阻塞主線程,導致用戶界面出現卡頓或響應慢的現象,為了優(yōu)化用戶體驗,可以采用Web Worker來在后臺線程中執(zhí)行這些操作,本文將詳細介紹在React項目中如何集成和使用Web Worker來改善應用性能,需要的朋友可以參考下
    2023-12-12
  • useEvent顯著降低Hooks負擔的原生Hook

    useEvent顯著降低Hooks負擔的原生Hook

    這篇文章主要為大家介紹了useEvent顯著降低Hooks負擔的原生Hook示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • React+ts實現二級聯動效果

    React+ts實現二級聯動效果

    這篇文章主要為大家詳細介紹了React+ts實現二級聯動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • React受控組件和非受控組件對比詳解

    React受控組件和非受控組件對比詳解

    在使用React搭建用戶界面時,組件可以分為兩類:受控組件和費受控組件這兩種組件在數據處理方式上有著顯著的差異,理解它們的區(qū)別對于構建高效和可控的React應用至關重要,本文將深入探討這兩種組件的定義、特點以及使用場景,并通過示例代碼幫助你更加清晰地理解它們
    2025-01-01
  • React大屏可視化腳手架教程示例

    React大屏可視化腳手架教程示例

    這篇文章主要為大家介紹了React大屏可視化腳手架教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 深入理解React與閉包的關系

    深入理解React與閉包的關系

    本文將深入探討React與閉包之間的關系,我們將首先介紹React和閉包的基本概念,然后詳細解釋React組件中如何使用閉包來處理狀態(tài)和作用域的問題,希望通過本文的閱讀,你將對React中閉包的概念有更深入的理解,并能夠在開發(fā)React應用時更好地應用閉包
    2023-07-07
  • React手寫一個手風琴組件示例

    React手寫一個手風琴組件示例

    這篇文章主要為大家介紹了React手寫一個手風琴組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • React18新增特性介紹

    React18新增特性介紹

    react歷次版本迭代主要想解決的是兩類導致網頁卡頓的問題,分別是cpu密集型任務和io密集型任務導致的卡頓問題,react18新增特性就是為了解決上述問題
    2022-09-09

最新評論