vue封装标题组件

代码

titleLine.vue

<template>
  <div :class="classes" :style="style">
    <div class="title-content">
      <span></span>
      <span>{{message}}</span>
    </div>
  </div>
</template>

<script>
export default {
  name: "titleLine",
  props: {
    message: {
      type: String,
      required: true
    },
    borderPosition: {
      // 'top', 'bottom'
      type: String
    },
    topGap: {
      type: Number,
      default: 0
    },
    bottomGap: {
      type: Number,
      default: 0
    }
  },
  computed: {
    classes: function() {
      return [
        "title-line",
        {
          ["border_position_" + this.borderPosition]: this.borderPosition !== ""
        }
      ];
    },
    style () {
      return {        
        paddingTop: this.topGap + 'px',
        paddingBottom: this.bottomGap + 'px'
      };
    }
  }
};
</script>

<style lang="less" scoped>
.title-line {
  // 默认的属性  
}
.title-content {
  font-size: 14px;
  span {
    display: inline-block;
    vertical-align: middle;
  }
  span:first-of-type {
    width: 2px;
    height: 14px;
    background-color: #ff7d41;
    margin-right: 8px;
  }
}
.border_position_top {
  border-top: 1px solid #e9e9e9;
}
.border_position_bottom {
  border-bottom: 1px solid #e9e9e9;
}
</style>

使用
标题必传,上划线或下划线可选,上划线和下划线垂直距离可选

<title-line message="标题" borderPosition="top" :topGap="20"></title-line>

网站导航

网站导航

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 组件(Component)是Vue.js最核心的功能,也是整个架构设计最精彩的地方,当然也是最难掌握的。...
    六个周阅读 5,653评论 0 32
  • 三、组件 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML元素,封装可重用...
    小山居阅读 636评论 0 1
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,550评论 0 17
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 上班才三天,公司开始为三八妇女节筹备活动了,曳步舞、读书交流座谈会..... 这几天莫名得心慌,总是觉得心里闷闷的...
    栀_dc5b阅读 315评论 0 0