简介
@pile-ui/switch
是一个基于 React 的 UI 组件库中的 Switch 组件,该组件提供开关按钮的功能,可以通过点击或者拖动的方式实现打开和关闭状态的切换。
安装
通过 run npm 安装该组件到你的项目中:
npm install @pile-ui/switch
使用
在引入组件之前,需要保证你的项目中已经安装了 React
和 ReactDOM
库,同时该组件是一个受控组件,所以需要引入 useState
来管理开关的状态。
import React, { useState } from "react"; import ReactDOM from "react-dom"; import Switch from "@pile-ui/switch";
组件的使用非常简单,只需要将组件放在你的 JSX 中,并传递相应的参数即可:
-- -------------------- ---- ------- -------- ----- - ----- ------ -------- - ---------------- ----- ------------ - -- -- - --------------- -- ------ - ----- ---------- ------------ ------- ------------ -------------- ----------------------- -- ------ -- - -------------------- --- ---------------------------------
在上面的代码中,我们首先使用 useState
定义了一个 isOn
变量,该变量的初值为 false
,同时定义了一个 handleSwitch
函数,用于处理 switch 的开关逻辑,最后在 JSX 中将 isOn
和 handleSwitch
作为参数传递给了 Switch
组件。
参数说明
Switch
组件共有两个必选参数,以及其他一些可选参数。需要注意的是,如果你想要设置 switch 的样式,可以直接在样式文件中覆盖组件默认的 CSS,无需在参数中指定。
必选参数
id
:开关的唯一标识符,必须是字符串类型;checked
:开关的状态,必须是布尔值类型;
可选参数
defaultChecked
:开关的默认状态,如果未传递checked
参数,则会从该参数中获取状态,默认为false
;onChange
:开关状态改变时的回调函数,回调函数默认传递一个事件参数,可以通过event.target.checked
属性获取开关的状态;disabled
:是否禁用该开关,默认为false
;
拓展
在实际使用过程中,我们可能需要对 Switch
组件进行拓展,增加更多的行为或者样式。如果你习惯使用面向对象的方式,可以通过 React 的 class 组件来拓展该组件。以下是一个简单的示例:
-- -------------------- ---- ------- ------ ----- ---- -------- ------ --------- ---- ------------- ------ ------ ---- ------------------ ----- -------- ------- --------------- - ------------------ - ------------- ---------- - - -------- ------------- -- ------ -- ----------------- - ----------------------------- - ------------------- - --------------- -------- -------------------- --- -- --- -- --------- -- --------------------- - --------------------------- - - -------- - ------ - ------- ------------------ ---------------------------- ---------------------------- --------------- -- -- - - ------------------ - - --- ---------------------------- -------- --------------- --------- --------------- --------- --------------- -- --- ----- ----- -- ------ ------- ---------
在上面的代码中,我们定义了一个 MySwitch
组件,继承自 React.Component
,并重写了 handleChange
和 render
函数。同时,我们增加了一些额外的参数校验,包括必选参数 id
和可选参数 disabled
。
最后我们在 render
函数中返回的是 Switch
组件,将继承自父类的其他参数通过 this.props
传递给子组件。在 handleChange
函数中,我们通过更新子组件状态来实现开关状态的修改,并触发传递下来的 onChange
回调函数。
这样,我们可以通过 MySwitch
组件来代替 Switch
组件,同时可以进行更多的拓展和定制化。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600672693660cf7123b366a2