0.1.2 • Published 4 years ago

jul-ui v0.1.2

Weekly downloads
9
License
-
Repository
-
Last release
4 years ago

基本介绍

效果演示

  • 初始化vue项目

    vue create demo

  • 安装组件库

    yarn add jul-ui

  • 全局导入

    import JulUI from 'jul-ui' import 'jul-ui/lib/jul-ui.css'

    Vue.use(JulUI)

  • 使用组件 查看使用文档 ..

  • button组件

参数支持

参数名 参数描述 参数类型 默认值
type 按钮类型(primary / success / warning / danger / info) string default plain 是否是朴素按钮 boolean false
round 是否是圆角按钮 boolean false
circle 是否是圆形按钮 boolean false
disabled 是否禁用按钮 boolean false
icon 图标类名 string 无

事件支持

事件名 事件描述 click 点击事件

  • dialog组件

参数支持

参数名 参数描述 参数类型 默认值
title 对话框标题 string 提示
width 宽度 string 50%
top 与顶部的距离 string 15vh visible 是否显示dialog(支持sync修饰符) boolean false

事件支持

事件名 事件描述
opened 模态框显示的事件 closed 模态框关闭的事件

  • input组件

参数支持

参数名称 参数描述 参数类型 默认值
placeholder 占位符 string 无
type 文本框类型(text/password) string text disabled 禁用 boolean false clearable 是否显示清空按钮 boolean false show-password 是否显示密码切换按钮 boolean false name name属性 string 无

事件支持

事件名称 事件描述
blur 失去焦点事件 change 内容改变事件 focus 获取的焦点事件

  • switch组件

参数支持

参数名称 参数描述 参数类型 默认值
v-model 双向绑定 布尔类型 false name name属性 string text activeColor 自定义的激活的颜色 string
inactiveColor 自定义的不激活的颜色 string

事件支持

事件名称 事件描述
change change时触发的事件

  • radio组件

参数支持

参数名称 参数描述 参数类型 默认值
v-model 双向绑定 布尔类型 false label 单选框的value值 string,num,boolean ''
name name属性 string

  • checkbox组件 eckbox" :class="{'is-checked': value}">
  • checkbox-group组件

  • form组件

  • form-item组件
  • 封装成UI组件库

目录调整

  • 根目录创建两个文件夹packages和examples

    packages: 用于存放所有的组件 examples: 用于进行测试,把src改成examples

  • 把components中所有的组件放入到packages中
  • 把fonts放到packages中
  • 删除原来的src目录

vue.config.js配置

  • 新增vue.config.js配置

    const path = require('path') module.exports = { pages: { index: { entry: 'examples/main.js', template: 'public/index.html', filename: 'index.html' } }, // 扩展 webpack 配置,使 packages 加入编译 chainWebpack: config => { config.module .rule('js') .include.add(path.resolve(__dirname, 'packages')).end() .use('babel') .loader('babel-loader') .tap(options => { // 修改它的选项... return options }) } }

  • 统一导出packages中所有的组件

    // 统一导出 // 导入颜色选择器组件 import Button from './button' import Dialog from './dialog' import Input from './input' import Checkbox from './checkbox' import Radio from './radio' import RadioGroup from './radio-group' import Switch from './switch' import CheckboxGroup from './checkbox-group' import Form from './form' import FormItem from './form-item' import './fonts/font.scss'

    // 存储组件列表 const components = Button, Dialog, Input, Checkbox, Radio, RadioGroup, Switch, CheckboxGroup, Form, FormItem

    // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册 const install = function (Vue) { // 遍历注册全局组件 components.forEach(component => { Vue.component(component.name, component) }) }

    // 判断是否是直接引入文件,如果是,就不用调用 Vue.use() if (typeof window !== 'undefined' && window.Vue) { install(window.Vue) }

    // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 export default { install }

测试

在examples中的main.js中进行导入测试

import Vue from 'vue'
import App from './App.vue'

import JulUI from '../packages'

Vue.use(JulUI)

Vue.config.productionTip = false

new Vue({
  render: h => h(App)
}).$mount('#app')

发布到npm与github

发布到github

发布到npm

https://cli.vuejs.org/zh/guide/build-targets.html#%E5%BA%93

  • 在scripts中新增一条 打包命令

    "lib": "vue-cli-service build --target lib packages/index.js"

  • 发布到npm

修改package.json文件

"private": false,
"main": "dist/jul-ui.umd.min.js",
"author": {
  "name": "wjl"
},

增加 `.npmignore文件

# 忽略目录
examples/
packages/
public/
 
# 忽略指定文件
vue.config.js
babel.config.js
*.map
  • npm发布

    npm login npm publish

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago