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

其中
const lessRegex = /\.less$/ const lessModuleRegex = /\.module\.less$/;
2.引入
在需要使用的文件中引入index.module.less文件,注意,這里的樣式文件后綴必須是module.less,因為我們在webpack.config.js中配置的正則檢測就是/\.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>
查看控制臺的樣式文件

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

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

