在VUE2.0中使用PostCSS

2022-01-02 大前端視野

在寫 vue 組件樣式時,有時為了兼容需要不停的寫 -webkit-,即使複製粘貼也不能提升我們碼 css 的幸福感,又有時我們想使用一下 BEM 風格的命名,但是長長的名稱外加分隔符敲起來十分煩人。

其實在 vue-loader 中僅需要簡單的配置即可拯救我們。

vue-loader 中 PostCSS 配置

vue-loader 中使用了 PostCSS 來處理 css,如下圖所示:


上圖為 vue-loader 9.x、webpack 1.x 中配置方法


autoprefixer 使用


對於 autoprefixer 功能來說,使用起來則更為方便了。當我們使用 vue-cli (最新版)創建好 vue 項目時,在 build/webpack.base.conf.js 中可以看到 vue-loader 的中已經默認加入了 autoprefixer 的配置,如下圖所示:


我們僅需要做的是配置好 autoprefixer 中的選項。

vue-cli 工具默認給出的是 』last 2 versions』,即主流瀏覽器的最新兩個版本。

對於移動端來說很多 css3 屬性需要加 -webkit- 前綴來說,這個配置目前是不夠的

可以根據我們的需求增加,如『Android >= 4.0』(安卓大於4.0版本),』ChromeAndroid>5%』(chrome 和 android webview 全球統計有超過 5% 的使用率)等等。

例如我們使用如下配置:


vue 組件中 css 如下:


編譯出來後會得到如下結果:


如此就可以放心的不寫 -webkit- 了。

postcss-cssnext 使用


1. 首先使用 npm install postcss-cssnext 安裝插件。

2. 在 vue-loader 的 postcss 中加入 postcss-cssnext。

注意

cssnext 插件中已經包含了 autoprefixer ,所以這裡不用再引入autoprefixer。


配置完成後,來試一試 cssnext 功能。

vue 組件中 css 如下:


編譯後:



postcss-bem 使用


使用 bem 風格來對 css 進行命名時,名稱雖然清晰,但是長名稱外加分割線,寫起來略微不爽。

在 vue 中使用 postcss 命名時,可以使用 postcss-bem 來簡化我們的書寫,而且配置起來也十分方法。

1.安裝 bem 的插件 npm install saladcss-bem

2.在 vue-loader 的 postcss 中引入 postcss-bem


配置完成後,就可以用簡化的方式來書寫 bem 風格的 css 了

vue 組件中 css 如下:


編譯後結果:


補充:

https://github.com/vuejs/vue-loader/blob/master/docs/en/features/postcss.md vue-loader對PostCSS使用介紹

https://autoprefixer.github.io/  autoprefixer在線編譯,可以用來測試browers配置是否正確

https://github.com/ai/browserslist#queries  browserlist 參數詳解

http://cssnext.io/usage/  cssnext使用

https://github.com/saladcss/saladcss-bem  posts-bem插件 

相關焦點

  • vue中使用rem
    lib-flexible 用於設置 rem 基準值。
  • tailwindcss and postcss for 小程序第二個大版本發布啦!
    @latest tailwindcss-miniprogram-preset@latest一些框架,如vue/cli,uni-app,nuxt2(有postcss8插件)用的Postcss7舊版本,則使用postcss7-compatibility-build
  • 系統學習 vue 中使用 css 的各種方式
    在未使用 Vue 框架時,可以通過 class 和 style 來給 HTML 元素添加 css,如果想動態修改 css 可直接操作 DOM 元素的屬性。在前端小課 第6天:使用CSS的三種方式 中我們講了 css 的引入方式。
  • Vue中使用animate.css實現動畫效果
    在實際開發過程中,有些頁面需要一些炫酷的動畫效果這時我們可以通過animate來實現Animate是一個非常實用的動畫庫官網: https://animate.style/Animate動畫庫裡面有很多實用的動畫效果展示如下:應用實例效果展示:使用方法:在vue中使用animate.css第一步:安裝
  • VUE項目中CSS管理最佳實踐
    在Web前端開發的過程中,比起JavaScript,css通常是比較容易忽略的一塊內容。css易於理解,但是應用和維護並不簡單。如果項目規劃中沒有考慮好css管理的問題,隨著項目代碼量的增加和工程體量的增大,後期樣式上的維護會越來越困難。所以今天探討一下如何在vue項目管理好css。css 選擇器的命名空間是全局的,並沒有局部的概念。
  • 在 Vue.js 中集成 CSS 框架
    一般來說在 VUE 中集成 CSS 框架的方法是相同的,本文以被廣泛使用的 Bootstrap 4 為例。我們需要的是 Foundation Sites 框架,因為我們只關心在 Web 中使用 Foundation。
  • vue-elemnt-admin學習
    https://panjiachen.github.io/vue-element-admin-site/zh/單元測試我們可以看到vue-element-admin的單元測試是使用jtest.config.js來進行測試vue和jtest的結合就是和官網的一樣:https://cn.vuejs.org
  • Vue-使用vue-video-player組件
    在實際開發過程中會有添加視頻的需求在vue項目中添加視頻可以使用vue-video-player組件來實現實現步驟:1.安裝在控制臺輸入: npm install vue-video-player –s
  • 【項目推薦】Vue.js
    作者是尤雨溪,寫下這篇文章時 vue.js版本為 1.0.7 。我推薦使用 sublime text 作為編輯器,關於這個編輯器可以看我這篇文章。,vue.js 使用 v-for 這個指令就能完成,v-for 取代了 1.0 以前版本中的 v-repeat。
  • vue中令人頭疼的element-ui組件默認css樣式修改
    1.使用全局統一覆蓋針對一些通用的、樣式固定的組件,可以全局處理,其方法是新建一個css或者scss文件,覆蓋element原有的class你可以在src/styles目錄下新建一個element-ui-reset.scss,根據UI的需要,修改原有的class名稱使用scss的好處是可以使用變量,來應對UI的不同變化比如我們常用的按鈕、分頁、
  • Vux v0.1.2 發布,基於 Vue 和 WeUI 的 UI 組件庫
    Hi, Vux 0.1.2發布了。
  • 搭建 Vue CLI 4.x + Webpack5 + Vue 3.x 移動端框架
    安裝插件npm install lib-flexible -Snpm install postcss-pxtorem -D2. main.js 裡 引入 lib-flexibleimport 'lib-flexible';3.
  • 前端工程化(ES6模塊化和webpack打包css,less,scss,圖片,字體...
    文件,修改dev命令: "dev": "webpack-dev-server --open --host 127.0.0.1 --port 9999"*/配置默認預覽頁面使用html-webpack-plugin 可以生成一個預覽頁面。
  • 【第795期】Vue2.0 Transition常見用法全解惑
    正文從這開始~Vue2.0的過渡系統(transition)有了很大的改變,想把1.0的項目遷移到2.0,著實需要費一些功夫,今天我就要把vue2.0的過渡系統的用法搞清楚,因為之前確實踩了不少坑。什麼是過渡Vue只有在插入,更新或者移除DOM元素時才會應用過渡效果,過渡效果的應用可以通過不同方式實現,官方文檔中提到了如下幾種:在CSS過渡和動畫中自動應用class;配合使用第三方的CSS動畫庫,如Animate.css;在過渡鉤子函數中使用JavaScript直接操作DOM;
  • tailwindcss 小程序定製化之旅
    2. 無所事事的選擇器先上 wxss 官方文檔連結從裡面,我們可以看到目前支持的選擇器有:如在 iPhone6 上,屏幕寬度為 375px,共有 750 個物理像素,則 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1 物理像素。
  • 使用Vue CLI腳手架搭建Vue基礎環境
    選擇默認環境Default ([Vue 2] babel, eslint)完成安裝運行程序進入vue-test文件下,打開命令行運行程序2.Vue常用基礎配置配置環境變量前端的環境變量跟正常系統裡的環境變量差不多,都是讓當前系統中能簡易的獲取到對應的信息(文件路徑、文件名稱等)
  • Webpack 案例 ——vue-loader 原理分析
    數組也跟開發者定義的規則相同開發者原始定義的 vue-loader 規則,內容及配置都不變開發者原始定義的 css 規則,用到 css-loader、mini-css-extract-plugin loader開發者原始定義的 js 規則,用到 babel-loader可以看到,第 2、3 項是從開發者提供的配置中複製過來的,內容相似,只是 cloneRule
  • 7個有用的 Vue開發技巧
    1、狀態共享隨著組件的細化,就會遇到多組件狀態共享的情況, Vuex當然可以解決這類問題,不過就像 Vuex官方文檔所說的,如果應用不夠大,為避免代碼繁瑣冗餘,最好不要使用它,今天我們介紹的是 vue.js 2.6 新增加的 Observable API ,通過使用這個 api 我們可以應對一些簡單的跨組件數據狀態共享的情況。
  • 使用Vue.js、Node和Okta構建安全的用戶管理
    本教程使用以下技術,但不需要深入了解相關知識:帶有vue-cli, vue-router和 Okta Vue SDK的 Vue.js 使用 Express, Okta JWT驗證程序, Sequelize和 Epilogue結點
  • 7個有用的Vue開發技巧
    今天我們介紹的是 vue.js 2.6 新增加的 Observable API ,通過使用這個 api 我們可以應對一些簡單的跨組件數據狀態共享的情況。如下這個例子,我們將在組件外創建一個 store,然後在 App.vue組件裡面使用 store.js 提供的 store和 mutation方法,同理其它組件也可以這樣使用,從而實現多個組件共享數據狀態。