Skip to content

Slider 滑块

通过滑动滑块来选择一个数值。

基础用法

tsx
import { Slider } from '@airo-ui/react'

function Demo() {
  return <Slider defaultValue={30} />
}

受控与非受控

tsx
import { useState } from 'react'
import { Slider } from '@airo-ui/react'

function ControlledDemo() {
  const [value, setValue] = useState(50)
  return <Slider value={value} onChange={setValue} />
}

function UncontrolledDemo() {
  return <Slider defaultValue={60} />
}

范围与步长

tsx
import { Slider } from '@airo-ui/react'

function Demo() {
  return (
    <>
      <Slider defaultValue={30} min={0} max={100} step={10} />
      <Slider defaultValue={30} min={0} max={100} step={0.1} />
    </>
  )
}

提示

tsx
import { Slider } from '@airo-ui/react'

// 显示默认提示
<Slider defaultValue={50} tooltip />

// 自定义提示格式
<Slider
  defaultValue={50}
  tooltip
  formatTooltip={(value) => `${value}%`}
/>

尺寸

tsx
import { Slider } from '@airo-ui/react'

function Demo() {
  return (
    <>
      <Slider defaultValue={50} size="sm" />
      <Slider defaultValue={50} size="md" />
    </>
  )
}

禁用

tsx
import { Slider } from '@airo-ui/react'

function Demo() {
  return <Slider defaultValue={50} disabled />
}

API

Props

名称类型默认值说明
valuenumber受控模式当前值
defaultValuenumber0非受控模式默认值
minnumber0最小值
maxnumber100最大值
stepnumber1步长
disabledbooleanfalse是否禁用
size'sm' | 'md''md'尺寸
tooltipbooleanfalse是否显示提示
formatTooltip(value: number) => string | number自定义提示内容格式
onChange(value: number) => void值变化时触发

MIT License