Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

deer-ui

zhangboyang12346MIT1.1.10

React.js UI components for PC Web

deer, deer-ui, react, tool, react-component, component, components, ui, web, pc-component, framework, frontend

readme

Deer-ui

🦌 deer-ui 一个简单高效轻量级的React组件库

npm npm version

travis Coverage Status

当前版本

npm version

预览

安装

使用 npm

npm install deer-ui --D

使用 yarn

yarn add deer-ui

如何使用

  1. srcipt引入
    <script src="https://cdn.jsdelivr.net/npm/deer-ui@1.1.10/dist/index.min.js"></script>
    如果不是最新代码,请手动修改版本号,以此来获取最新的cdn代码
  2. 全部引入
import React,{Component} from "react"
import { Button } from "deer-ui"
import "deer-ui/dist/deer-ui.min.css"

class App extends Component {
  render(){
    return (
      <Button type="success">deer-ui</Button>
    )
 }
}
  1. 按需引入
import Button from 'deer-ui/es/button';
import 'deer-ui/es/button/style.less';
  1. 使用 babel-plugin-import
// 单独使用在.babelrc.js中配置
module.exports = {
  plugins: [
    ["import", {
      "libraryName": "deer-ui",
      "libraryDirectory": "es",
      "style": true'
    },'deer-ui'], 
  ]
}

// 多个组件库,例如antd
module.exports = {
  plugins: [
    ["import", {
      "libraryName": "deer-ui",
      "libraryDirectory": "es",    
      "style": true            
    },'deer-ui'], 

    ["import", {
      "libraryName": "antd",
      "libraryDirectory": "es",
      "style": true  
    },'antd'], 
  ]
}

  1. 配合create-react-app使用按需加载
在babel-loader的options中配置如下

 options: {
    plugins: [
      ["import", {
        "libraryName": "antd",
        "libraryDirectory": "es",
        style: true
      },'antd'],
      ["import", {
        "libraryName": "deer-ui",
        "libraryDirectory": "es",
        "style": true
      },'deer-ui'],

定制主题

  1. Deer-ui使用less作为样式开发语言,并定义了一系列全局/组件的样式变量,你可以根据需求进行相应调整。 以下是一些最常用的通用变量,所有样式变量可以在 这里 找到。 ` @primary-color: #31c27c; //全局色 @warning-color: #fca130; //警告色 @error-color: #f93e3e; //失败色 @success-color: #35C613; //成功色 @info-color: #61affe; //信息展示色 @default-color: #d9d9d9; //默认色 @border-color: #e8e8e8; //边框颜色 @border-radius: 4px; //边框圆角 @font-size: 14px; //默认组件字体大小 @font-size-small: 12px; //小字体 @font-size-large: 16px; //大字体 @bg-color: #FAFAFA; //组件背景色 @font-color: rgba(0, 0, 0, .65); //字体颜色 @disabled-font-color: fade(@font-color, 30%); //禁用字体颜色
2. 主题定制原理上是使用 less 提供的 modifyVars 的方式进行覆盖变量。使用webpack中配置less-loader的options。注意javascriptEnabled要打开。

// webpack.config.js module.exports = { rules: [{ test: /.less$/, use: [{ loader: 'style-loader', }, { loader: 'css-loader', // translates CSS into CommonJS }, { loader: 'less-loader', // compiles Less to CSS

  • options: {
  • modifyVars: {
  • 'primary-color': '#1DA57A',
  • 'info-color': '#1DA57A',
  • 'font-size': '12px',
  • // or
  • 'hack': true; @import "your-less-file-path.less";, // 或者引用本地样式文件覆盖
  • },
  • javascriptEnabled: true,
  • }, }], }], }

注意,定制主题后,less-loader 的处理范围不能过滤掉 node_modules 下的 deer-ui 包。

##  国际化
deer-ui 提供了一个 React 组件 ConfigProvider 用于全局配置国际化文案。目前的默认文案是中文,如果需要使用其他语言,可以参考下面的方案。
```js
import { LocaleProvider } from "deer-ui"
import zhCN from 'deer-ui/es/locale/lang/zh_cn';
return (
  <LocaleProvider locale={zhCN}>
    <App />
  </LocaleProvider>
);

更新日志

CHANGELOG

ui设计思路

参考 Ant-Design组件库交互和视觉设计,实现AntDesign大部分组件。最终目的是:我全都要😝

谁在使用

后续开发计划

  1. 第一阶段组件已经开发完毕,基本完成message,input,radio,button,table,checkbox,collapse,tabs,empty.loading,icon,divider等基础组件的开发;完成Deer-ui组件库框架搭建,实现自动化打包部署,增加stylelint,eslint,commitlint,自动生成changelog,组件库测试环境搭建,组件库官方文档网站搭建,以及主题定制等功能。
  2. 后续增加组件库的自动化测试,国际化功能。
  3. 继续完成后面组件的开发。
  4. 最后畅想下,使用ts完成组件库的重构。

开发组件

请首先安装 node,npm

  1. 安装依赖
git clone https://github.com/zhangboyang123/deer-ui

cd deer-ui


npm install --registry https://registry.npm.taobao.org 
  1. 调试组件,组件库提供两种方案
1.第一种
  源码中搭建了一个react环境,在example文件夹下,使用npm run dev,即可打开调试环境,引入编写的组件即可.
2.第二种
  源码中搭建了一套组件库的文档部署环境,使用命令npm run storybook,即可进入文档模式,引入编写的组件即可.

 import { Button, Tabs } from "../../src";
 import '../components/button/style.less';
  1. 开发一个组件 以Button组件为例子 cd components 目录下,新建文件夹button,在下面创建Button.js,index.js,style.less三个文件夹

例如Button.js

创建button.js
class Button extends Component {
    render(){
        reurn <div>button</div>
    }
}
export default Button;

在components文件夹下index.js中导出该组件

export { default as Button } from './button';

4.发布

框架提供了自动化发布命令,打包,发版,lint,日志等功能,命令如下

npm run pub:prod    //自动完成css,js,es,lin,umd打包,自动生成changelog,发布npm仓库,为修订版版本号。1.0.*

npm run pub:major  //都会完成上述不同,唯一区别是,打的npm版本号不同,此命令是打主版本号,不经常用 *.0.0

npm run pub:minor  //都会完成上述不同,唯一区别是,打的npm版本号不同,此命令是打次版本号,不经常用 1.*.0

发布组件库文档,框架提供两种方式

1.执行npm run pub:docs   //采用storybook的方式去发布

2.npm run deploy  //该命令会执行脚本deploy.sh文件,打包并发布组件库文档

版本号区别查看文章npm如何管理依赖包的版本

参考轮子

License

MIT

changelog

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

1.1.10 (2020-05-01)

1.1.9 (2020-05-01)

Features

  • 🎸 增加国际化功能,新增自动化测试 (796424f)
  • 🎸 新增组件库文档发布阿里云oss,增加持续集成CI (d711c28)
  • 将打包后的文档做成npm包,部署cdn (9c2c8dc)
  • 替换文档地址 (a5d57a3)

Bug Fixes

  • 🐛 修改button导出 (948b736)
  • 🐛 修改travis配置 (58632d1)
  • 🐛 修改配置 (43cd4a1)
  • 修改发布文档发布cdn脚本 (fc0e7cf)

1.1.8 (2020-03-24)

Features

  • 新增 文件上传组件upload (4f8dfbf)

1.1.7 (2020-03-19)

Bug Fixes

  • 修改 scroll-into-view-if-needed包依赖 (34e97f8)
  • 修改select,datepiker样式依赖问题,修改datepicker文件夹名称 (5011250)

1.1.6 (2020-03-18)

Features

  • col,row,layout: 新增布局组件 (b16da05)
  • 新增datePicker组件,组件文档,增加组件cdn地址 (576a5f0)
  • 新增Select组件,修改组件库文档打包loader (3ed2a60)

1.1.5 (2020-01-16)

Bug Fixes

  • checkbox: 修复checkbox输出数据和选中数据不匹配bug (6f4af13)

1.1.4 (2020-01-15)

Bug Fixes

  • message,radio: 修改message样式,调整radio生命周期问题 (fb8530c)

1.1.3 (2020-01-14)

Features

  • input: 开发input组件以及文档 (1a575e6)
  • radio: 开发radio单选框组件以及开发文档 (b8598fa)

1.1.2 (2020-01-10)

Features

  • 🎸 增加主题定制功能,抽离公共组件样式,增加checbox,divider组件,完善组件库文档和readme (d9c39e8)

1.1.1 (2019-12-27)

Bug Fixes

  • 🐛 修改打包命令,修复调试环境样式问题,修改readme (1b2fe67)

1.1.0 (2019-12-26)

Features

  • 🎸 新增readme,新增组件库文档 (da4b894)

1.0.1 (2019-12-26)

Bug Fixes

  • 🐛 修复message组件z-index,调整发版命令 (8e74ed8)

⚠ BREAKING CHANGES

  • package.json gulpfile.js src/components

Features

  • 🎸 新增commitlint,增加配置文件commitlint.config.js (2cb2cdb)
  • 💡 调整组件路径,修改lib,es中样式文件路径 (fa6c598)

0.0.2 (2019-12-25)

Features

  • 🎸 新增Button,tabs,table,icon,message组件,修改打包脚本,新增组件库文档 (48d0e13)