Vue中使用CSS前處理器 stylus以及配置全域性變數的方法
前言
不得不說CSS前處理器(Sass/Less/Stylus)極大的方便了前端研發攻城獅編寫CSS樣式,提供了變數定義、可巢狀的選擇器、mixins混合書寫、函式定義等諸多便捷的能力。
今天呢,胡哥就以stylus在vue中的使用為例, 為大家分享css前處理器的基本使用方式,以及全域性變數的定義和便捷使用方式。
三種CSS前處理器在vue中的使用原理是相同的, 希望大家能觸類旁通...
一、stylus的基本使用
-
下載安裝stylus、stylus-loader包
npm i stylus stylus-loader -D
-
webpack中的配置(可選)
// 配置檔案 build/webpack.base.conf.js -- 對應vue-cli生成的專案module: { rules: [ // 配置stylus { test: '.styl$', loader: 'style-loader!css-loader!stylus-loader' } ] }
其實在vue-cli生成的vue2.0的專案中,此處的webpack可以不再進行配置,vue會自動檢測如果使用了stylus語法,會自動呼叫stylus-loader進行解析處理
-
stylus檔案和在vue元件中使用stylus
a. 單獨配置stylus的檔案,副檔名為.styl
// assets/css/reset.styl 用於重置CSS樣式 * margin 0 padding 0 a text-decoration none
b. vue元件中的使用
-
vue中載入stylus檔案
a. 在JS環境中
// main.js import '@/assets/css/reset.styl'
b. 在style中
//App.vue中@import './assets/css/reset.styl'
二、配置stylus的全域性變數使用方式
在專案開發中會約定一些公共統一的樣式,比例定義文字預設顏色、預設背景色,滑鼠懸浮色,統一配置到一個檔案中,非常利於後期的維護更新。
// assets/css/variables.styl// 定義背景色bgColor = #f3f3f3// 定義導航條背景色navBgColor = #1d1f2a// 定義hover啟用色hoverColor = #008dff
引入全域性變數配置檔案variables.styl
錯誤方式
// main.js中引入variables.styl import '@/assets/css/variables.styl' // 在App.vue中的使用
如果大家按照上述的方式直接引入variables.syl檔案,在元件中去使用時就會發現變數是無效的,不能被解析
正確方式
// 需要在App.vue中單獨引入變數檔案
那麼問題來了,在每一個需要使用變數的component元件中都需要單獨引入variables.styl檔案,不僅進行了多次重複性的操作,而且檔名稱一旦發生改變,維護更新非常麻煩,非常的不人性化。
完美解決方案
藉助於配置檔案build/utils.js解決該問題
// 在generateLoaders方法的後面!後面!後面!(說三遍呀!)定義如下變數const stylusOptions = { import: [ path.join(__dirname, "../src/assets/css/variables.styl") ], paths: [ path.join(__dirname, '../src/assets'), path.join(__dirname, '../') ] }// 在緊接著的return返回值中進行配置return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus', stylusOptions), styl: generateLoaders('stylus', stylusOptions) }
修改配置檔案後,一定要記得重啟服務
接下來直接在style中使用變數即可!!!
後記
以上就是胡哥今天給大家分享的內容,喜歡的小夥伴記得收藏、點贊呦。順便還可以讚賞一下,請我喝杯咖啡...
作者:JustBeCoder
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2810627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- css前處理器--Sass,Less,StylusCSS
- vue定義全域性變數和全域性方法Vue變數
- css前處理器scss/sass語法以及使用CSS
- vue-cli 配置 sass 全域性變數Vue變數
- vue2中使用sass並配置全域性的sass樣式變數Vue變數
- QT 全域性變數使用方法QT變數
- CSS 前處理器CSS
- CSS 前處理器—sassCSS
- 兩種方式配置vue全域性方法Vue
- mac配置全域性環境變數Mac變數
- Python中的全域性變數和區域性變數Python變數
- javascript全域性變數的使用注意JavaScript變數
- CSS | 前處理器(上)- SassCSS
- SpringBoot中的全域性異常處理Spring Boot
- less 全域性變數使用 引用變數
- CSS 前處理器之目錄CSS
- 全域性變數變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- 使用全域性 bus 在 Vue 的兄弟元件中簡單傳值(以及 this 重定向的 5 種方法)Vue元件
- Vue Cli3.0 全域性引入 less 變數Vue變數
- Axios 請求配置引數詳解以及全域性配置示例iOS
- 全域性變數與區域性變數變數
- 區域性變數和全域性變數變數
- 全域性 DOM 變數變數
- Vue3 如何實現全域性異常處理?Vue
- 全域性DOM變數的坑變數
- golang變數作用域問題-避免使用全域性變數Golang變數
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- jmeter全域性變數和區域性變數JMeter變數
- 【c】全域性變數與區域性變數變數
- 設計一個全域性異常處理器
- [Vue] 如何定義全域性的方法?Vue
- springboot全域性異常處理Spring Boot
- .netcore全域性異常處理NetCore
- js-js的全域性變數和區域性變數JS變數
- js宣告全域性變數JS變數
- 函式之定義及全域性變數&區域性變數&風溼理論函式變數