vue手写按钮状态组件

Posted 奥特曼 

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue手写按钮状态组件相关的知识,希望对你有一定的参考价值。

 实现效果

 用插槽来支持自定义文案

props来传入指定的大小,风格 样式

使用组件

  <XtxButton type="gray" size="mini">加入购物车</XtxButton>
  <XtxButton type="plain" size="small">加入购物车</XtxButton>
  <XtxButton type="primary" size="middle">加入购物车</XtxButton>
  <XtxButton type="default" size="large">加入购物车</XtxButton>

按钮组件

<template>
  <button class="xtx-button ellipsis" :class="[size,type]">
    <slot>测试按钮</slot>
  </button>
</template>
<script>
export default {
  name: 'XtxButton',
  props: {
    size: {
      type: String,
      default: 'middle'
    },
    type: {
      type: String,
      default: 'default'
    }
  }
}
</script>
<style scoped lang="less">
// @xtxColor:#27BA9B;
.xtx-button {
  appearance: none;
  border: none;
  outline: none;
  background: #fff;
  text-align: center;
  border: 1px solid transparent;
  border-radius: 4px;
  cursor: pointer;
}
.large {
  width: 240px;
  height: 50px;
  font-size: 16px;
}
.middle {
  width: 180px;
  height: 50px;
  font-size: 16px;
}
.small {
  width: 100px;
  height: 32px;
  font-size: 14px;
}
.mini {
  width: 60px;
  height: 32px;
  font-size: 14px;
}
.default {
  border-color: #e4e4e4;
  color: #666;
}
.primary {
  border-color: @xtxColor;
  background: @xtxColor;
  color: #fff;
}
.plain {
  border-color: @xtxColor;
  color: @xtxColor;
  background: lighten(@xtxColor,50%);
}
.gray {
  border-color: #ccc;
  background: #ccc;;
  color: #fff;
}
</style>

 

以上是关于vue手写按钮状态组件的主要内容,如果未能解决你的问题,请参考以下文章

深入Vue底层,手写一个vuex

深入Vue底层,手写一个vuex

深入Vue底层,手写一个vuex

深入Vue底层,手写一个vuex

vue+element 根据状态,显示不同的操作按钮

VSCode自定义代码片段13——Vue的状态大管家