如何在vue-cli中使用css-loader實現(xiàn)css module
【前言】
無論是vue還是react的css模塊化解決方案都是依賴loader來實現(xiàn)的 在使用上,vue中用scoped屬性實現(xiàn)樣式的私有化,利用深度作用選擇器/deep來實現(xiàn)樣式的去私有化。
例子:
<div>
<div class="demo">
<div class="child"></
div>
</div>
</div>
<script>
// some code
<script/>
<style lang="less" scoped>
.demo {
height: 100px;
padding-top: 20px;
background-color: grey;
/deep/.child {
color: red;
}
}
</style>
在react中使用上是這么搞的(基于css-loader):
//test.less
.demo {
height: 100px;
padding-top: 20px;
background-color: grey;
:global(.child) {
color: red
}
}
import styles from './test.less'
// some code
<div className={styles.demo}>
<div class="child"></div>
</div>
不得不說,在使用上還是vue比較方便。
如果硬要在vue中使用css-loader實現(xiàn)css module的這套解決方案呢?這里以vue-clie 3.x為例。
無論在vue的腳手架vue-cli中還是在react的腳手架umi中,,現(xiàn)在都使用了webpack-chain來實現(xiàn)配置webpack.
這里在vue-cli腳手架創(chuàng)建的項目根目錄下,新建vue.config.js,并寫入如下內(nèi)容:
module.exports = {
chainWebpack: (config) => {
config.devServer
.proxy({
'/api': {
target: 'http://localhost:3000',
pathRewrite: { '^/api': '', },
},
})
.port(9000);
config.module
.rule('less')
.oneOf('normal-modules')
.test(/.less$/)
.use('css-loader')
.tap(options => {
return Object.assign(options, {
modules: {
localIdentName: '[name]__[local]___[hash:base64:5]',
auto: /\.less$/i,
},
})
});
},
};
本來其實也不用寫這段內(nèi)容,默認(rèn)情況,vue-cli的腳手架已經(jīng)配置了css-loader的模塊化,但是需要把less文件命名成xxx.module.less的形式,這和umi那套不同,也不方便,這樣配置然后重啟,就能像react一樣寫css了,另外把引入的style存入data中。這里只是說下可以在vue-cli使用css-loader的那套解決方案,但最佳實踐還是用vue自帶的那套。
完
以上就是如何在vue-cli中使用css-loader實現(xiàn)css module的詳細(xì)內(nèi)容,更多關(guān)于vue-cli中使用css-loader實現(xiàn)css module的資料請關(guān)注腳本之家其它相關(guān)文章!
- Vue+scss白天和夜間模式切換功能的實現(xiàn)方法
- vue中配置scss全局變量的步驟
- 在vue中動態(tài)修改css其中一個屬性值操作
- 在Vue中使用CSS3實現(xiàn)內(nèi)容無縫滾動的示例代碼
- 解決vue scoped scss 無效的問題
- Vue打包部署到Nginx時,css樣式不生效的解決方式
- Vue實現(xiàn)Tab標(biāo)簽路由效果并用Animate.css做轉(zhuǎn)場動畫效果的代碼
- Vue3新特性之在Composition API中使用CSS Modules
- Vue + Scss 動態(tài)切換主題顏色實現(xiàn)換膚的示例代碼
- Vue CLI3移動端適配(px2rem或postcss-plugin-px2rem)
- vue css 引入asstes中的圖片無法顯示的四種解決方法
- Vue如何使用CSS自定義變量
相關(guān)文章
Spring Boot/VUE中路由傳遞參數(shù)的實現(xiàn)代碼
在路由時傳遞參數(shù),一般有兩種形式,一種是拼接在url地址中,另一種是查詢參數(shù)。這篇文章主要介紹了Spring Boot/VUE中路由傳遞參數(shù),需要的朋友可以參考下2018-03-03
vue+element UI中如何給指定日期添加標(biāo)記
這篇文章主要介紹了vue+element UI中如何給指定日期添加標(biāo)記問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
vue.js el-tooltip根據(jù)文字長度控制是否提示toolTip問題
這篇文章主要介紹了vue.js el-tooltip根據(jù)文字長度控制是否提示toolTip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02
vue3 element-plus el-tree自定義圖標(biāo)方式
這篇文章主要介紹了vue3 element-plus el-tree自定義圖標(biāo)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03

