前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue中使用CSS预处理器 stylus以及配置全局变量的方法

Vue中使用CSS预处理器 stylus以及配置全局变量的方法

作者头像
胡哥有话说
发布2019-07-25 15:46:11
3.1K0
发布2019-07-25 15:46:11
举报
文章被收录于专栏:胡哥有话说胡哥有话说

前言

不得不说CSS预处理器(Sass/Less/Stylus)极大的方便了前端研发攻城狮编写CSS样式,提供了变量定义、可嵌套的选择器、mixins混合书写、函数定义等诸多便捷的能力。

今天呢,胡哥就以stylus在vue中的使用为例, 为大家分享css预处理器的基本使用方式,以及全局变量的定义和便捷使用方式。

三种CSS预处理器在vue中的使用原理是相同的, 希望大家能触类旁通…

一、stylus的基本使用

  1. 下载安装stylus、stylus-loader包 npm i stylus stylus-loader -D
  2. 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进行解析处理
  3. stylus文件和在vue组件中使用stylus a. 单独配置stylus的文件,扩展名为.styl // assets/css/reset.styl 用于重置CSS样式 * margin 0 padding 0 a text-decoration none b. vue组件中的使用 <style lang="stylus"> // 使用stylus语法书写即可 </style>
  4. vue中加载stylus文件 a. 在JS环境中 // main.js import '@/assets/css/reset.styl' b. 在style中 //App.vue中 @import './assets/css/reset.styl'

二、配置stylus的全局变量使用方式

在项目开发中会约定一些公共统一的样式,比例定义文字默认颜色、默认背景色,鼠标悬浮色,统一配置到一个文件中,非常利于后期的维护更新。

代码语言:javascript
复制
// assets/css/variables.styl

// 定义背景色
bgColor = #f3f3f3
// 定义导航条背景色
navBgColor = #1d1f2a
// 定义hover激活色
hoverColor = #008dff
引入全局变量配置文件variables.styl

错误方式

代码语言:javascript
复制
// main.js中引入variables.styl
import '@/assets/css/variables.styl'

// 在App.vue中的使用
<style lang="stylus">
body
  background-color bgColor      
</style>

如果大家按照上述的方式直接引入variables.syl文件,在组件中去使用时就会发现变量是无效的,不能被解析

正确方式

代码语言:javascript
复制
// 需要在App.vue中单独引入变量文件
<style lang="stylus">
@import './assets/css/variables.styl'

body
  background-color bgColor      
</style>

那么问题来了,在每一个需要使用变量的component组件中都需要单独引入variables.styl文件,不仅进行了多次重复性的操作,而且文件名称一旦发生改变,维护更新非常麻烦,非常的不人性化。

完美解决方案

借助于配置文件build/utils.js解决该问题

代码语言:javascript
复制
// 在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中使用变量即可!!!

后记

以上就是胡哥今天给大家分享的内容,喜欢的小伙伴记得收藏、转发、点击在看呦…

胡哥有话说,一个有技术,有情怀的胡哥!京东开放平台首席前端攻城狮。与你一起聊聊大前端,分享前端系统架构,框架实现原理,最新最高效的技术实践!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 胡哥有话说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 一、stylus的基本使用
      • 二、配置stylus的全局变量使用方式
        • 引入全局变量配置文件variables.styl
    • 后记
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档