亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

React如何解決樣式污染問(wèn)題

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

react樣式污染問(wèn)題

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

但是在react中沒(méi)有scoped屬性, 而react中我們發(fā)現(xiàn)css樣式設(shè)置也存在互相影響的問(wèn)題。

(例如:改變?nèi)謽邮?,設(shè)置的樣式不起效果,被其他地方的樣式覆蓋...)

但在react中可以利用module方法來(lái)解決:

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

(2)將寫(xiě)好的css樣式引入到對(duì)應(yīng)組件中。

import styles from "xxx.module.css";

 一般命名為styles

(3) 通過(guò) styles 對(duì)象訪問(wèn)對(duì)象中的樣式名來(lái)設(shè)置樣式

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

解析完的類(lèi)名是一個(gè)哈希串。

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

(4)注意: css類(lèi)名中如果有 '-' 則要改為styles[ css類(lèi)名 ]。因?yàn)樽罱K這個(gè)類(lèi)名會(huì)生成為styles對(duì)象上的一個(gè)屬性。一般推薦使用小駝峰命名法

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

react與vue不同,vue可以通過(guò)在script中設(shè)置scoped來(lái)限制樣式的生效范圍,不至于樣式污染,

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

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

1.css modules是默認(rèn)開(kāi)啟的,所以我們只需要將原先的.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是一堆啥玩意的名字,實(shí)際上它 是 App--<hash數(shù)值>,這個(gè) hash 值是全局唯一的,比如通過(guò)文件路徑來(lái)獲得,這樣 class 名稱就做到了全局唯一。

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

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

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • React BootStrap用戶體驗(yàn)框架快速上手

    React BootStrap用戶體驗(yàn)框架快速上手

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

    關(guān)于react中useCallback的用法

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

    詳解在React項(xiàng)目中如何集成和使用web worker

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

    useEvent顯著降低Hooks負(fù)擔(dān)的原生Hook

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

    React+ts實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了React+ts實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • React受控組件和非受控組件對(duì)比詳解

    React受控組件和非受控組件對(duì)比詳解

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

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

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

    深入理解React與閉包的關(guān)系

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

    React手寫(xiě)一個(gè)手風(fēng)琴組件示例

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

    React18新增特性介紹

    react歷次版本迭代主要想解決的是兩類(lèi)導(dǎo)致網(wǎng)頁(yè)卡頓的問(wèn)題,分別是cpu密集型任務(wù)和io密集型任務(wù)導(dǎo)致的卡頓問(wèn)題,react18新增特性就是為了解決上述問(wèn)題
    2022-09-09

最新評(píng)論