如何在vue-cli中使用css-loader實(shí)現(xiàn)css module
【前言】
無論是vue還是react的css模塊化解決方案都是依賴loader來實(shí)現(xiàn)的 在使用上,vue中用scoped屬性實(shí)現(xiàn)樣式的私有化,利用深度作用選擇器/deep來實(shí)現(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實(shí)現(xiàn)css module的這套解決方案呢?這里以vue-clie 3.x為例。
無論在vue的腳手架vue-cli中還是在react的腳手架umi中,,現(xiàn)在都使用了webpack-chain來實(shí)現(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, }, }) }); }, };
本來其實(shí)也不用寫這段內(nèi)容,默認(rèn)情況,vue-cli的腳手架已經(jīng)配置了css-loader的模塊化,但是需要把less文件命名成xxx.module.less的形式,這和umi那套不同,也不方便,這樣配置然后重啟,就能像react一樣寫css了,另外把引入的style存入data中。這里只是說下可以在vue-cli使用css-loader的那套解決方案,但最佳實(shí)踐還是用vue自帶的那套。
完
以上就是如何在vue-cli中使用css-loader實(shí)現(xiàn)css module的詳細(xì)內(nèi)容,更多關(guān)于vue-cli中使用css-loader實(shí)現(xiàn)css module的資料請關(guān)注腳本之家其它相關(guān)文章!
- Vue+scss白天和夜間模式切換功能的實(shí)現(xiàn)方法
- vue中配置scss全局變量的步驟
- 在vue中動態(tài)修改css其中一個屬性值操作
- 在Vue中使用CSS3實(shí)現(xiàn)內(nèi)容無縫滾動的示例代碼
- 解決vue scoped scss 無效的問題
- Vue打包部署到Nginx時,css樣式不生效的解決方式
- Vue實(shí)現(xiàn)Tab標(biāo)簽路由效果并用Animate.css做轉(zhuǎn)場動畫效果的代碼
- Vue3新特性之在Composition API中使用CSS Modules
- Vue + Scss 動態(tài)切換主題顏色實(shí)現(xiàn)換膚的示例代碼
- Vue CLI3移動端適配(px2rem或postcss-plugin-px2rem)
- vue css 引入asstes中的圖片無法顯示的四種解決方法
- Vue如何使用CSS自定義變量
相關(guān)文章
Spring Boot/VUE中路由傳遞參數(shù)的實(shí)現(xiàn)代碼
在路由時傳遞參數(shù),一般有兩種形式,一種是拼接在url地址中,另一種是查詢參數(shù)。這篇文章主要介紹了Spring Boot/VUE中路由傳遞參數(shù),需要的朋友可以參考下2018-03-03vue+element UI中如何給指定日期添加標(biāo)記
這篇文章主要介紹了vue+element UI中如何給指定日期添加標(biāo)記問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02vue實(shí)現(xiàn)微信瀏覽器左上角返回按鈕攔截功能
這篇文章主要介紹了vue實(shí)現(xiàn)微信瀏覽器左上角返回按鈕攔截功能,本文通過實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01vue.js el-tooltip根據(jù)文字長度控制是否提示toolTip問題
這篇文章主要介紹了vue.js el-tooltip根據(jù)文字長度控制是否提示toolTip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02vue3 element-plus el-tree自定義圖標(biāo)方式
這篇文章主要介紹了vue3 element-plus el-tree自定義圖標(biāo)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03