美文网首页
聊一聊BEM设计模式在Vue组件开发中的应用

聊一聊BEM设计模式在Vue组件开发中的应用

作者: 花生毛豆 | 来源:发表于2017-04-25 23:23 被阅读520次

回想一下在你的前端生涯中是否遇到过以下问题
1.在写css的时候经常会在命名class时绞尽脑汁
2.在团队多人开发中出现css命名冲突
3.在进行组件化开发时如何规范书写css

什么是BEM

BEM是Yandex团队提出的一种css的命名方式,通过这种命名方式可以很好地解决上面遇到的问题,提高css的开发效率和可读性

进入BEM的世界

  • B: 表示块,可以抽象成一个组件
  • E: 表示元素,组件下的一个元素,多个元素形成一个组件
  • M:表示修饰符,可以用来表示元素的状态,比如激活状态,颜色,大小

BEM这货究竟张啥样呢,颜值高不高,请看下面的代码

    .block {}
    .block__element {}
    .block__element--modifier {}

看完后你的内心会不会在想,卧槽,这货居然这么丑,名字还这么长,丑拒...

__和--连接符这是什么鬼

  • __主要用来表示块(B)和元素(E)间的连接
  • --用来表示块或者元素与状态的连接

比如我们要做写一个button的组件,可以这么来

    
    /* 有一个叫button的组件 */
    .button {
         dispaly: inline-block;
         pading: 10px;
     } 

    /* btn组件下面有一个显示图标的元素 */
    .button__icont {
          font-size: 12px;
     }
    
    /* btn组件有好多颜色可以选择  */
    .button--primary {
        background: blue;
    }

    .button--success {
        background: green;
     }

    .button--warning {
        background: red;
     }
    
    <div class="button button--primary">
        <span class="button__text">蓝色按钮</span>
    </div>

   <div class="button button--success">
        <span class="button__text">绿色按钮</span>
    </div>

   <div class="button button--warning">
        <span class="button__text">红色按钮</span>
    </div>     

在Vue中结合Stylus预编译器使用BEM规范


<template>
  <div class="button" :class="[type ? 'button--primary' : '']">
    <i class="button__icon"></i>
    <span class="button__text"> {{ text }} </span>
  </div>
</template>

<style lang="stylus" rel="stylesheet/stylus" scoped>
  .button
    background: #dedede
    &__icon
      font-size: 12px
    &__text
      color: #fff
    &--primary
      background: blue;
    &--success
      background: green
</style>

<script type="text/ecmascript-6">
  export default {
    props: {
      type: {
            type: String
      },
      text: {
            type: String
       }
    },
    data () {
      return {}
    },
    components: {}
  }
</script>

相关文章

  • 聊一聊BEM设计模式在Vue组件开发中的应用

    回想一下在你的前端生涯中是否遇到过以下问题1.在写css的时候经常会在命名class时绞尽脑汁2.在团队多人开发中...

  • 100 - 如何将设计思想、原则、模式等应用到项目中?

    本文我们来聊一聊,如何将设计思想、原则、模式等理论知识应用到实际的项目开发中。让大家能对学到的知识更好的应用到项目...

  • 设计模式中的那些工厂

    设计模式中的那些工厂 Intro 设计模式中有几个工厂模式,聊一聊这几个工厂模式的各自用法和使用示例,工厂模式包含...

  • Vue磨刀嚯嚯

    Vue开发风格——传统方法应用vue.js Vue开发风格——单个组件式 组件 基本操作 创建一个组件构造器 注册...

  • Vuex

    Vuex是什么? 专为Vue.js应用程序开发的状态管理模式 集中管理所有组件的状态, 可以存放组件中的公有数据 ...

  • Vuex状态管理

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。vue组件通过dispatch方法触发Action...

  • 设计模式在vue中的应用

    外观模式、工厂模式在vue中应用 formCom文件 login文件 状态模式在vue中应用 stepHome文件...

  • vuecli项目中vuex的使用

    Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式,当我们的应用遇到多个组件共享状态时,可以引入vue...

  • 聊一聊在Vue实战开发中Axios与登录机制

    因为HTTP是一个stateless的协议,服务器并不会保存任何关于状态的数据,所以需要登录功能让服务器在以后请求...

  • 聊一聊设计模式(二)-- 创建型设计模式

    前言 昨天讲了六大原则,今天就进入设计模式的正题了。 思维导图 创建型设计模式,顾名思义就是与对象的创建相关。 单...

网友评论

      本文标题:聊一聊BEM设计模式在Vue组件开发中的应用

      本文链接:https://www.haomeiwen.com/subject/ecvbzttx.html