Button
| npm package | npm downloads | github | 
|---|---|---|
没有 UI 依赖的按钮组件.
安装
yarn add @_nu/react-button @_nu/css-button
- @_nu/react-button: 逻辑组件
- @_nu/css-button: 样式组件
二次封装
/* @components/Button/index.js */
import Button from "@_nu/react-button";
import "@_nu/css-button";     // core style
import "@_nu/css-button/css/skins/bootstrap.css"; // skin of bootstrap
import './style.css'; // custome style
export default Button;
使用
import React, { useState } from 'react';
import Button, { ButtonClassProvider } from '../Button';
const Page=()=>{
    const [buttonThemeClass, setButtonThemeClass] = useState('theme_class1');
    const onThemeChange = e => {
        setButtonThemeClass(e.currentTarget.value);
    };
    return (
        <ButtonClassProvider value={buttonThemeClass}>
            <div>
                <select onChange={onThemeChange}>
                    <option value="theme_class1">theme1</option>
                    <option value="theme_class2">theme2</option>
                </select>
                <Button className="nu_btn">Button</Button>
                <Button className="nu_btn" href="/nu-button">Button</Button>
            </div>
        </ButtonClassProvider>
    );
};
export default Page;
Api
| 属性 | 类型 | 默认值 | 功能 | 
|---|---|---|---|
| children | string | Array | ' ' | children | 
| className | string | Array | ' ' | className | 
| href | string | ' ' | href for a | 
| disabled | boolean | false | disabled status of button | 
| Component | string | func | object | 'button' | wrapper | 
<Button className="nu_btn _fill">hello</Button>
<Button className="nu_btn _fill"><strong>hello</strong></Button>
<Button className="nu_btn _fill" disabled>hello</Button>
<Button className="nu_btn _fill _primary">hello</Button>
<Button className="nu_btn _fill _primary" href="." title="hello">hello</Button>
=>
<button class="nu_btn _fill" type="button" title="hello">hello</button>
<button class="nu_btn _fill" type="button"><strong>hello</strong></button>
<button class="nu_btn _fill" type="button" disabled title="hello">hello</button>
<button class="nu_btn _primary _fill" type="button" title="hello">hello</button>
<button class="nu_btn _fill _primary" type="button" title="hello">hello</button>
<a class="nu_btn _fill _primary" href="." title="hello">hello</a>
ClassName 处理
<Button className="_primary _fill _ghost _primary">hello</Button>
<Button className={['_primary','_fill','_ghost','_primary','','',null]}>hello</Button>
如何修改样式?
查看样式组件 @_nu/css-button
测试
// How to start
npm test
// generate coverage report
npm run test:coverage