vue 使用Jade模板写html,stylus写css

2,288 阅读2分钟
原文链接: segmentfault.com

vue 使用Jade模板写html,stylus写css

日常工作都是使用vue开发页面和webApp,写的多了就想偷懒简化各种书写方式,所以使用了jade写html,stylus写css,省了很多的步骤和提高了效率。

安装包
// 安装jade包
npm install jade jade-loader --save-dev
// 如果使用vue-cli构建项目,则不需要安装stylus相关的包,vue-cli默认已安装
npm install stylus stylus-loader --save-dev
配置文件
// webpack.base.conf.js 配置
// jade
{
    test : /\.jade$/,
    loader : 'jade-loader',
}
// stylus 如果使用vue-cli构建,无需配置此项
{
    test : /\.styl$/,
    loader : 'stylus-loader',
}
jade使用前后对比
// html 模板
<template>
    <div class='demo-components'>
        <h2>测试标题</h2>
        <p>
            <span class='text'>这是一条测试的demo文本</span>
            <i class='icon'></i>
        </p>
        <input v-model='value1' @keydown.enter='loginIn'>
        <p>{{ oneText + "-" + "twoText" }}</p>
    </div>
</template>
// jade 模板
<template lang='jade'>
    div.demo-components
        h2 测试标题
        p
            span.text 这是一条测试的demo文本
            i.icon
        input(v-model='value1',@keydown.enter='loginIn')
        p {{ oneText + "-" + twoText }}
</template>
使用Jade注意事项
  • 需要简单了解jade基本使用语法(10分钟简单了解即可)
  • template 需要加上lang='jade'属性
  • 标签内文本换行会解析错误,需要使用其他技巧性方法解决。例:
<template lang='jade'>
    div
        p 我是测试文本哇,可是文本太长需要换行啊,我恰巧回车试一
          下啊,啊呀,报错啦!!
</template>
// 可以写进一个变量里、或方法中返回数据、或保持一行不换行
stylus 前后对比
<style lang='css'> // css less sass scss 样式demo此处省略 

// stylus demo
<style lang='stylus'>
    .main-body
        width 300px
        heihgt 200px
        background-color rgba(0,0,0,1)
        .main-model
            width 50px
            height 50px
            margin 20px auto
</style>
  • stylus 可以使用极简的方式写css,也可以格式混合(为了保持格式统一,不建议),将解析的任务交给webpack去做,我们只需要书写简单易读的代码即可。这是我喜欢的风格和方式,sass当然也可以做到,只是个人的机缘巧合现在使用了stylus。
写下本文做个人记录,也给其他人做个参考。