@_nu/react-button 中文文档教程

发布于 3年前 浏览 20 项目主页 更新于 3年前

NuButton

npm packagenpm downloadsgithub
npm packagenpm downloadsgithub

没有 UI 依赖的按钮组件.

做了啥?

  • props 上有 href 时,会用 a 替换 button;
  • 默认为 button 添加 type="button";
  • 当元素标签不是 button 时会默认添加 role="button"

安装

yarn add @_nu/react-button @_nu/css-button

二次封装

/* @/components/Button/index.js */
import NuButton from "@_nu/react-button";         // import
import "@_nu/css-button";                         // core style
import "@_nu/css-button/css/skins/bootstrap.css"; // skin of bootstrap
import './style.css';                             // custome style
const Button = React.forwardRef(function Button(props, ref) {
  return <NuButton classNames="nu_btn" ref={ref} {...props} />;
});

export default Button;

⚠️:注意这里 classNamesclassName的区别, 见底部 API

index.d.ts

import { ComponentProps } from '@_nu/react-button';
declare const _default: (props?: ComponentProps) => JSX.Element;
export default _default;

⚠️:二次封装之后,代码提示会丢失,需要额外添加 index.d.ts 维持代码提示!

使用

import Button from '@/components/Button';

// 这里省略了其它代码

<Button className="_fill">hello</Button>
<Button className="_fill" Component="strong">hello</Button>
<Button className="_fill"><strong>hello</strong></Button>
<Button className="_fill" disabled>hello</Button>
<Button className="_fill _primary">hello</Button>
<Button className="_fill _primary" href="." title="hello">hello</Button>

会渲染成:

<button class="nu_btn _fill" type="button">hello</button>
<strong class="nu_btn _fill" role="button">hello</strong>
<button class="nu_btn _fill" type="button"><strong>hello</strong></button>
<button class="nu_btn _fill" type="button" disabled>hello</button>
<button class="nu_btn _fill _primary" type="button">hello</button>
<a class="nu_btn _fill _primary" role="button" href="." title="hello">hello</a>

⚠️:这里是在定义了 classNames="nu_btn" 的状况之下

Api

属性类型默认值功能
hrefstring' 'href for a
Componentstring | func | object'button'tagName
classNamestring'-'className
classNamesstring'nu_btn'会添加到 className 之前

⚠️:classNames 主要是用于在二次封装到时候,添加默认的 className

如何修改样式?

查看样式组件 @_nu/css-button

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文