在react中對(duì)less實(shí)現(xiàn)scoped配置方式
介紹
我們知道CSS是網(wǎng)頁(yè)樣式的一種描述方法。
習(xí)慣了使用Vue項(xiàng)目中樣式文件強(qiáng)大的scoped屬性限制,差點(diǎn)忘記了CSS的規(guī)則是全局的,任何一個(gè)組件的樣式規(guī)則都會(huì)對(duì)整個(gè)頁(yè)面有效。
最近在開(kāi)始一個(gè)React的項(xiàng)目,就需要項(xiàng)目中的樣式內(nèi)容也能像Vue中的樣式那樣,只對(duì)某個(gè)文件或者某個(gè)DOM有效,避免全局樣式文件的污染。
那么問(wèn)題來(lái)了,在create-react-app創(chuàng)建的React項(xiàng)目中,如何使用Webpack配置css modules呢?
使用
1.配置webpack.config.js
詳情參考ant.d主題換膚。

其中
const lessRegex = /\.less$/ const lessModuleRegex = /\.module\.less$/;
2.引入
在需要使用的文件中引入index.module.less文件,注意,這里的樣式文件后綴必須是module.less,因?yàn)槲覀冊(cè)?code>webpack.config.js中配置的正則檢測(cè)就是/\.module\.less$/
3.樣式內(nèi)容
// index.module.less
.testModule{
background: blue;
width: 20px;
height: 14px;
}
4.className使用
// index.js
import lessModule from './index.module.less'
<div className={lessModule.testModule}></div>
查看控制臺(tái)的樣式文件

結(jié)果中可以看到class已經(jīng)被解析成了亂七八糟,這種,解決了全局污染的問(wèn)題了吧。
可能的問(wèn)題
如果你出現(xiàn)了引入.less文件,但是打印出來(lái)發(fā)現(xiàn)是空的
import lessModules from 'index.module.less'
console.log(lessModules) // {}
那就要去看看你的webpack.config.js文件,這里是否添加了exclude項(xiàng)

這句配置項(xiàng),是需要把我們想要css modules處理的樣式文件不經(jīng)過(guò)普通的.less文件解析,而使用下面的css module來(lái)解析。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
react時(shí)間分片實(shí)現(xiàn)流程詳解
實(shí)現(xiàn)react時(shí)間分片,主要內(nèi)容包括什么是時(shí)間分片、為什么需要時(shí)間分片、實(shí)現(xiàn)分片開(kāi)啟 - 固定、實(shí)現(xiàn)分片中斷、重啟 - 連續(xù)、分片重啟、實(shí)現(xiàn)延遲執(zhí)行 - 有間隔、時(shí)間分片異步執(zhí)行方案的演進(jìn)、時(shí)間分片簡(jiǎn)單實(shí)現(xiàn)、總結(jié)、基本概念、基礎(chǔ)應(yīng)用、原理機(jī)制和需要注意的事項(xiàng)等2022-11-11
React替換傳統(tǒng)拷貝方法的Immutable使用
Immutable.js出自Facebook,是最流行的不可變數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)之一。它實(shí)現(xiàn)了完全的持久化數(shù)據(jù)結(jié)構(gòu),使用結(jié)構(gòu)共享。所有的更新操作都會(huì)返回新的值,但是在內(nèi)部結(jié)構(gòu)是共享的,來(lái)減少內(nèi)存占用2023-02-02
React實(shí)現(xiàn)組件間通信的幾種方式小結(jié)
在React應(yīng)用中,組件間的通信是一個(gè)基礎(chǔ)而關(guān)鍵的概念,理解和掌握不同組件之間的通信方式,可以幫助我們構(gòu)建出更加模塊化、可維護(hù)和可擴(kuò)展的應(yīng)用程序,React提供了多種組件通信的方法,本文給大家詳細(xì)的介紹了這些方法,需要的朋友可以參考下2024-07-07
React使用Electron開(kāi)發(fā)桌面端的詳細(xì)流程步驟
React是一個(gè)流行的JavaScript庫(kù),用于構(gòu)建Web應(yīng)用程序,結(jié)合Electron框架,可以輕松地將React應(yīng)用程序打包為桌面應(yīng)用程序,本文詳細(xì)介紹了使用React和Electron開(kāi)發(fā)桌面應(yīng)用程序的步驟,需要的朋友可以參考下2023-06-06

