umi中使用scss


在umi中可以直接使用css,但是並不支持scss,我們需要加兩個loader,
直接npm安裝 node-sass和sass-loader 即可,剩余的事情umi已經幫我們做好了。

npm i --save-dev node-sass sass-loader

 

在src/assets下新建文件夾

- assets
 +  - img
 +  - css
  +   -style.scss  // 這個樣式文件一般來說存放全局的樣式

  

在src/pages/index.js 引用style.scss

import '../assets/css/style.scss';

  

在home.js同級新建home.scss 文件

.home-container{
    .red{
        color:red;
    }
}

 

在home.js引用,並修改render


// 第一種使用scss方法 // 使用這種方法的時候樣式名稱不能用 "-" ,不然在使用的時候會報錯
...
import homeStyle from './home.scss';
...

...
  render() {
        return (
            <div className={homeStyle.home_container}>
                <p className={homeStyle.red}>Home 頁面</p>
            </div>
        );
    }
...

  

 // 第二種使用scss方法
 ... import './home.scss'; ... ... render() { return ( <div className="home_container"> <p className="red">Home 頁面</p> </div> ); } ... 

  

用第二種方法的情況:

刷新頁面發現並沒有變化,打開瀏覽器調試窗口,查看sources

找到引用的css文件,搜索可以看到好像我們的樣式確實是存在的,只不過被加上了其他的后綴(為了保證不會出現全局污染)

ps:這個問題當時我找了好久

 
1.png

這個是umi自己默認加上,我們並不想要這個東西,在.umirc.js文件中添加配置

 

...
cssLoaderOptions:{
  localIdentName:'[local]'
}
...

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM