buUI- 一个Vue UI 组件

本文档介绍了如何创建一个名为buUI的Vue UI组件库,包括Button组件、Icon组件和ButtonGroup组件的详细实现。Button组件提供基本样式,Icon组件允许设置图标及位置,ButtonGroup组件用于组合按钮。此外,还展示了Input组件的多种状态及其双向绑定功能。文章提供了完整的代码示例,帮助读者理解和使用这个组件库。
摘要由CSDN通过智能技术生成

buUI - 一个Vue UI 组件

作者:大补

github地址 可以点个 Start。
在线浏览

安装

注册 npmjs
发布一个 npm 包
你可以通过

npm install --save buui

使用本框架前,请在CSS中开启 border-box

*{box-sizing: border-box;}

Button 组件

在这里插入图片描述
按钮组件 Button.vue 单文件组件。

<template>
    <button class="g-button">按钮</button>
</template>

<script>
export default {};
</script>

<style lang="scss">
.g-button {
  font-size: var(--font-size);
  height: var(--button-height);
  padding: 0 1em;
  border-radius: var(--border-radius);
  border: 1px solid var(--border-color);
  background: var(--button-bg);
  &:hover {
    border-color: var(--border-color-hover);
  }

  &:active {
    background-color: var(--button-active-bg);
  }

  &:focus {
    outline: none;
  }
}
</style>

新建一个app.js

import Vue from 'vue';
import Button from './button.vue';
Vue.component('g-button', Button) //全局组件
new Vue({
    el: '#app',
})

新建一个index.html 引入 app.js 文件

<!DOCTYPE html>
<html lang="zh-Hans">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    
     :root {
        --button-height: 32px;
        --font-size: 14px;
        --button-bg: white;
        --button-active-bg: #eee;
        --border-radius: 4px;
        --color: #333;
        --border-color: #999;
        --border-color-hover: #666;
    }
</style>
<style>
    #app {
        margin: 20px;
    }
</style>

<body>
    <div id="app">
        <g-button></g-button>
    </div>
</body>
<script src="./src/app.js"></script>

</html>

添加Icon.vue

  1. 添加 iconfont 添加一些 icon ,通过 props 接收设置 icon 图标的属性值 ,icon-position (left | right) 设置 icon 的位置
    使用方法:
    	<g-button icon="settings">按钮</g-button>
    	<g-button icon="right" icon-position="right">按钮</g-button>
    

添加ButtonGroup.vue

  1. 其作用是将两个按钮合并成一个
    使用方法:
	<g-button-group>
            <g-button icon="left">按钮</g-button>
            <g-button>更多</g-button>
            <g-button icon="right" icon-position="right">按钮</g-button>
    </g-button-group>

效果图
效果图

input

  1. 设置input四种状态。
    1. value 态 可输入
    2. disabled 态 禁止输入和点击
    3. readonly 态 可以点击不能修改
    4. error 态 可以显示一些提示信息
      在这里插入图片描述
 <div class="box">
            <g-input value="张三" @change="inputChange"></g-input>
            <g-input value="李四" readonly></g-input>
            <g-input value="王五" disabled></g-input>
        </div>
        <div class="box">
            <g-input value="王五" error="姓名不能少于两个字"></g-input>
        </div>
  1. 双向绑定
    在这里插入图片描述
data:{
  value: '1'
}

<g-input v-model="value"></g-input>
<div>
  value: {{value}}
</div>

通过设置事件实现双向绑定

<input :value="value"  @input="$emit('input',$event.target.value)" type="text"   >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值