NPM 包 Kettle-corn 使用教程

什么是 Kettle-corn?

Kettle-corn 是一款基于 React 的组件库,其中包含了多种常用的 UI 组件,如按钮、输入框、下拉框、表格等等,支持自定义样式和事件处理。

Kettle-corn 的目标是为开发者提供一套高质量的 UI 组件库,避免重复造轮子,减少代码量,提高开发效率。同时,它也是一个开源项目,源码托管在 GitHub 上,可以随时进行二次开发和定制。

如何安装 Kettle-corn

Kettle-corn 是一个 NPM 包,所以我们可以通过 NPM 或 Yarn 来安装。在终端中输入以下命令:

--- ------- ----------- ------

- ---- -----
---- --- -----------

如何使用 Kettle-corn

Kettle-corn 中的组件都是以 ES6 模块的形式导出的,如果你的项目使用的是模块化的开发方式(例如使用 Webpack 或 Rollup),那么可以直接引入组件:

------ ----- ---- --------
------ - ------ - ---- --------------

------ ------- -------- ------------------ -
  ------ -
    -----
      ------- ----------- -- -------------------
        ----- ---
      ---------
    ------
  --
-

如果你使用的是传统的 Script 标签引入方式,需要先使用 Webpack 将 Kettle-corn 打包成一个 UMD 库,然后通过 Script 标签引入:

--------- -----
------
------
  ----- ----------------
  --------- -----------
-------
------
  ---- ---------------
  ------- ---------------------------------
  --------
    --- ------ - ------------------
    --- -- - -------------------------------
    ----------------------- ------------------- - ------------------ -------- ------------- ----
  ---------
-------
-------

Kettle-corn 组件的 Props

Kettle-corn 的组件都会接收一些 Props,并根据这些 Props 来展示不同的 UI。下面是一些常见的 Props:

Button

Prop Type Default Required Description
children Node Yes Btn 的文本内容
disabled Boolean false No 是否禁用按钮
type String "button" No 按钮的类型,可选值为: "button", "submit", "reset"
className String No 自定义 Btn 的 class 样式
onClick Function No 点击 Btn 触发的事件函数
href String No 按钮超链接地址,即将 元素转化为 元素。如果设置了 href,则会在 onClick 事件与其他行为之后打开链接地址。
target String "_self" No 链接打开的目标窗口。如果 href 是一个 HTTP(S) 地址,则默认为 "_blank"。

Input

Prop Type Default Required Description
id String No 与 input 绑定的 ID,可用于 标记或 QuerySelector 选择器
name String No input 名称
type String "text" No input 的类型,可选值为: "text", "email", "number", "password", "search", "tel", "url", "date", "month", "week", "time", "datetime-local"
placeholder String No input 的占位符文本
value Any No input 的初始值
defaultValue Any No input 的默认值,仅在使用非受控组件时有效
onChange Fucntion No input 值改变时触发的回调函数
onFocus Fucntion No input 获取焦点时触发的回调函数
onBlur Fucntion No input 失去焦点时触发的回调函数
readOnly Boolean false No 是否只读
disabled Boolean false No 是否禁用
autoFocus Boolean false No 是否自动获取焦点
maxLength Number No input 允许输入的最大长度
minLength Number No input 允许输入的最小长度
autoComplete String "on" No 是否启用表单自动填充,可选值为: "on", "off"
onKeyDown Fucntion No input 键盘按下时触发的回调函数
onKeyUp Fucntion No input 键盘释放时触发的回调函数

Select

Prop Type Default Required Description
id String No 与 select 绑定的 ID,可用于 标记或 QuerySelector 选择器
name String No select 名称
value Any No select 的初始值
defaultValue Any No select 的默认值,仅在使用非受控组件时有效
onChange Function(event, value) No select 值改变时触发的回调函数。event 是一个 SyntheticEvent 实例,value 是选中项的值
onFocus Function(event) No select 获取焦点时触发的回调函数。event 是一个 SyntheticEvent 实例
onBlur Function(event) No select 失去焦点时触发的回调函数。event 是一个 SyntheticEvent 实例
readOnly Boolean false No 是否只读
disabled Boolean false No 是否禁用
label String/Node No select 的标签文本
labelId String No 用于指定 label 元素的 id。如果未传递此选项,则默认为 ${id}-label。在单独关注无障碍性时有用
placeholder String/Node No select 的占位符文本
error String/Node No 表示输入无效的错误消息。这是一个字符串或一个 React 子元素,以在组件下方的空间展示错误信息。与 helperText 可以同时使用
required Boolean false No 选择器是否必填项
helperText String/Node No 与选择器相关的帮助或说明文本。这是一个字符串或一个 React 子元素,可以添加一个较小的文本来描述与组件相关的状态或输入要求等方面。与 error 可以同时使用
className String No 自定义 select 的 class 样式
native Boolean false No 是否使用 select 原生下拉菜单。如果为 true,则返回一个原生的 <select> 元素而不是一个虚拟 DOM。这对于使用样式库(如 bootstrap)而不是 CSS-in-JS 库(如 Material-UI)的用户非常有用,因为这些样式库需要基本的 select HTML 标记。当 native 为 true 时,属性 defaultValuevalue 必须是 select 中某个选项的 value 值。
multiple Boolean false No 是否支持多选
children Array/String No select 的可选项数组或 <optgroup> 和 <option>标签的字符串。如果选项是用数组提供的,则每个项必须为带 value, labelkey 属性的对象,这些属性用于设置选项的值、和文本以及列表中每个值的唯一标识。如果选项是用未加工数据提供的,则将使用其字符串表示作为选项的值和文本

Table

Prop Type Default Required Description
columns Array Yes 表格列信息数组
data Array Yes 表格数据数组,每个元素为一个对象,对象的 key 为每列的数据 key
tableCaption String No 表格的标题
tableClassName String "table" No 自定义表格样式的 className
columnWidths Object No 指定每列的宽度,可以是一个数字数组,也可以是一个包含 width 属性的对象数组,如果没有指定宽度,列的宽度会自适应调整
sortBy String No 指定排序的列名,需要配合 sortDirection 属性一起使用,且当 onSort Prop 不为 null 时有效
defaultSort Object No 默认排序的参数,键为排序的列名,值为 "asc" 或 "desc" 之一
sortDirection "asc" / "desc" No 指定排序方向,当 sortBy 属性不为 null 时有效
onSort Function No 表格的排序函数,接收两个参数: propertydirection,分别表示被排序的属性名称和方向( "asc" 或 "desc")
onRowClick Function No 表格内的某一行被点击时的回调函数,接收一个参数,即被点击行的数据对象
pagination Boolean false No 是否需要分页功能
perPageOptions Array [10, 20] No 每页显示数据数量的选项数组
currentPage Number 0 No 当前页数
onPageChange Function No 页面改变时的回调函数,接收一个参数,即当前页数
selectable Boolean false No 是否允许用 checkbox 选择行

示例代码

Button

------ ----- ---- --------
------ - ------ - ---- --------------

-------- ------------------ -
  ------ -
    --
      ------- ----------- -- ------------------------ ------------
      ------- ----------------- ---------------
      ------- -----------------------------------
      ------- ------------------- ---------------------- ------ -- --- -------------
    ---
  --
-

Input

------ ----- ---- --------
------ - ----- - ---- --------------

-------- ------------------ -
  ----- ------- --------- - -------------------

  ----- ------------ - ------- -- -
    -----------------------------
  --

  ------ -
    --
      ------
        -----------
        ----------------
        ------------------ ---- ---------
        -------------
        -----------------------
      --
      ------
        ---------------
        ----------------
        ------------------ ---- ---------
        -------------- ---------
        --------------- ---
      --
      ------
        ------------
        -------------
        ------------------ ---- ------
        --------
        ----------------- ----- ----- ---- ----- ---- ------ ------
      --
      ------ ----------- ------------- ----- --
    ---
  --
-

Select

------ ----- ---- --------
------ - ------ - ---- --------------

-------- ------------------ -
  ----- ------- --------- - -------------------

  ----- ------------ - ------- --------- -- -
    -------------------
  --

  ------ -
    --
      -------
        ----------
          - ------ -------- ------ ------- --
          - ------ --------- ------ -------- --
          - ------ --------- ------ -------- --
          - ------ --------- ------ -------- --
        --
        -------------
        -----------------------
        ------------------- - ------
      --
      -------
        ----------
          - ------ ------ ------ ----- --
          - ------ ------- ------ ------ --
          - ------ -------- ------ ------- --
          - ------ --------- ------ -------- --
        --
        -------------
        -------------
        -----------------------
        ------------- ------ - ------
      --
    ---
  --
-

Table

------ ----- ---- --------
------ - ----- - ---- --------------

-------- ------------------ -
  ----- ------- - -
    - ---- ----- ------ ----- ------ -- --
    - ---- ------- ------ ------- --------- ---- --
    - ---- --------- ------ --------- ------ --- --
    - ---- -------- ------ -------- ------ ---- --------- ---- --
  --

  ----- ---- - -
    - --- -- ----- -------- ------- --------- ------ ------------------- --
    - --- -- ----- ------ ------- ------- ------ ----------------- --
    - --- -- ----- ---------- ------- ------------- ------ --------------------- --
    - --- -- ----- -------- ------- ------- ------ ------------------- --
  --

  ------ -
    ------
      -----------------
      -----------
      --------------------
      ----------
      ----------------- -- -----------------
    --
  --
-

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/115823


猜你喜欢

  • npm 包 maker-ui 使用教程

    前言 随着前端技术的不断发展,不少框架和工具库层出不穷。其中,npm 是前端开发过程中必不可少的一个工具,而 maker-ui 则是 npm 包中的一款前端 UI 库。

    5 年前
  • npm 包 hyperagent 使用教程

    在前端领域,使用 hypermedia API 来构建 Web 应用程序已经成为一种常见的方式。hyperagent 是一个可以帮助开发人员更轻松地使用 hypermedia API 的 npm 包。

    5 年前
  • npm 包 superagent-defaults 使用教程

    在前端开发中,我们常常需要进行网络请求。其中superagent是一个常用的网络请求库,而superagent-defaults则是superagent的一个默认参数配置插件。

    5 年前
  • npm 包 links-parser 使用教程

    前言 在前端开发中,经常需要获取一个网页中的所有链接。手动解析 HTML 是一个繁琐的过程,会消耗大量的时间和精力。而 links-parser 就是一个非常好用的工具来帮助我们实现这个功能。

    5 年前
  • npm 包 reject 使用教程

    在前端开发过程中,我们经常使用 npm 包来扩展项目的功能。然而,在使用 npm 包的过程中,有时候会遇到一些问题,比如包的版本不兼容或者无法正常使用等。在这种情况下,我们可能需要使用 npm 包的 ...

    5 年前
  • npm 包 npmrc 使用教程

    在前端开发过程中,我们经常会用到 npm 包管理器来下载和安装各种基础库和第三方依赖。但是在实际开发过程中,我们会经常遇到需要配置多个不同的 npm 仓库地址的情况,例如: 需要使用公司内部搭建的 ...

    5 年前
  • npm 包 @k4connect/engine.io-client 使用教程

    背景 @k4connect/engine.io-client 是一个基于 engine.io 协议的实现,它提供了一个简单的 API 用于与 server 进行双向通信。

    5 年前
  • npm 包 @jonny/engine.io-client 使用教程

    @jonny/engine.io-client 是一个用于浏览器和 Node.js 的 engine.io 客户端。它支持 WebSocket 和 XHR 传输及其协议协商。

    5 年前
  • npm 包 minispy 使用教程

    1. 简介 minispy 是一个小巧灵活的 JavaScript 监控工具库,通过在页面中添加代码片段,可以有效的跟踪用户行为、监测响应性能、埋点打点等。 2. 安装 将 minispy 安装到你的...

    5 年前
  • 使用 component-collection npm 包

    在前端开发中,构建可重用的组件是非常重要的一件事情。npm 包 component-collection 可以帮助你构建自己的组件库。在本文中,我们将介绍如何使用该 npm 包,并提供一个示例代码。

    5 年前
  • npm 包 code42day-clock 使用教程

    什么是 code42day-clock? code42day-clock 是一个用于 JavaScript 的 npm 包,它提供了一种简单易用的方式来处理时间和日期。

    5 年前
  • NPM 包 disposable 使用教程

    NPM 是 JavaScript 世界中最大的包管理器,提供了许多用于前端开发的有用工具和库。其中一个非常有用的包就是 disposable,它可以让您快速创建临时文件和目录。

    5 年前
  • npm 包 Paperclip 使用教程

    Paperclip 是一个强大的前端模板引擎,它可以让你更方便地管理和切换不同的模板。在开发过程中,我们常常需要使用到各种不同的模板,而 Paperclip 正好可以帮助我们更好地管理和使用这些模板。

    5 年前
  • npm 包 mojo-views 使用教程

    什么是 mojo-views mojo-views 是一个轻量级的前端 MVVM 框架,它提供了类似于 Vue.js 和 React.js 的组件化思想。通过创建视图、绑定数据和事件,可以快速构建复杂...

    5 年前
  • npm 包 mojo-router 使用教程

    前言 在现代Web应用中,前端路由是必不可少的一部分,它帮助我们实现单页应用(SPA)和客户端路由。我今天要向大家介绍一个npm包,它是一个轻量级、快速的客户端路由库,叫做 Mojo Router。

    5 年前
  • npm 包 mojo-paperclip 使用教程

    npm 包 mojo-paperclip 使用教程 在前端开发中,我们经常会使用到图片上传功能。考虑到用户体验及流量消耗等方面的问题,我们会将图片压缩之后再上传。而 mojo-paperclip 就是...

    5 年前
  • npm 包 mojo-models 使用教程

    前言 基于 Node.js 平台的前端开发工具包越来越多,npm 成为前端开发者必不可少的工具之一。其中,mojo-models 是一款非常优秀的 npm 包,它可以帮助开发者轻松搭建可扩展的数据模块...

    5 年前
  • npm 包 mojo-bootstrap 使用教程

    在前端开发中,Bootstrap 是一个备受欢迎的 CSS 框架,它提供了一套开箱即用的样式和组件,让开发者能够快速构建漂亮的网页界面。但是,每一个项目都需要重复地引入相同的 Bootstrap 样式...

    5 年前
  • npm 包 inject 使用教程

    在前端开发中,我们经常需要将一个函数或者变量注入到另外一个模块中使用。这个时候我们可以使用 inject 这个 npm 包。本文将详细介绍如何使用该 npm 包实现注入功能,以及一些常见使用场景和实例...

    5 年前
  • npm 包 Linen 使用教程

    什么是 Linen? Linen 是一款基于 JavaScript 的标记语言,它能够将 Markdown、LaTeX 和 HTML 相结合,生成具美感、且易于协作的文档。

    5 年前

相关推荐

    暂无文章