Vue3 学习搭建组件库---(Button组件)

191 阅读1分钟

git地址:github.com/Xaw-xu/vue3…

给Button添加相关的props

type IButtonType = 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'default' // type的类型
props: {
    type: {
      type: String as PropType<IButtonType>,
      default:'primary',
      vaildator:(val:string)=>{
        return ['primary','success','warning','danger','info','default'].includes(val)
      }
    },
    icon:{ //图标
      type:String,
      default:''
    },
    disabled:Boolean,
    loading:Boolean,
    round:Boolean,
  },

32.png

控制各种形态下button的类名,添加不同的样式

const classs = computed(()=> [
      'z-button',
      'z-button--'+props.type,
      {
        'is-disabled':props.disabled,
        'is-loading':props.loading,
        'is-round':props.round,
      }
    ])

33.png 这里就随便写了一些样式

34.png 在website中使用看一下效果,这里的loading我随便用了一个icon

35.png

36.png

点击事件控制

组件的点击事件有组件内部进行控制,emit出去

37.png

按钮组(ButtonGroup)

执行以下命令,创建按钮组组件
lerna create button-group
yarn
这个组件就是同时包裹多个按钮的时候改一下第一个及最后一个按钮的样式使用
1.继续在button的src目录下创建此组件的vue文件
2.在对应的包下改一下对应的index.ts文件
3.添加一些简单的样式
4.在z-ui的index.ts中导出

38.png

39.png

40.png

41.png 效果

42.png

43.png 到此button组件完结, 有兴趣可以继续编写其他组件。其他组件都是大同小异,就不在一一写了。