R后悔药 Rue.js
  • 首页
    • 深度指南
    • 实战例子
    • 快速上手
    • 路由指南
    • 术语表
    • 错误代码参考
  • API
    • 合作伙伴
    • 插件
    • 组件库
    • 工具链
    • Text.js
    • 新闻简报
    • 常见问题
    • 团队
    • 版本发布
    • 社区指南
    • 行为规范
    • 隐私政策
  • 赞助
  • 合作伙伴
设置
目录统计
总条目
  • 按钮 Button
  • 排版 Typography
  • 时间选择器 TimePicker
  • 下拉菜单 Dropdown
  • 悬浮操作按钮 FAB
  • 模态框 Modal
  • 切换 Swap
  • 主题控制器 Theme Controller
  • 手风琴 Accordion
  • 头像 Avatar
  • 徽标 Badge
  • 卡片 Card
  • 轮播 Carousel
  • 聊天气泡 Chat
  • 折叠面板 Collapse
  • 倒计时 Countdown
  • 描述列表 Descriptions
  • 对比 Diff
  • 二维码 QRCode
  • 悬浮 3D 卡片 Hover 3D
  • 悬浮画廊 Hover Gallery
  • 键盘提示 Kbd
  • 列表 List
  • 统计 Stat
  • 状态 Status
  • 表格 Table
  • 文本轮播 Text Rotate
  • 时间线 Timeline
  • 锚点 Anchor
  • 固钉 Affix
  • 面包屑 Breadcrumbs
  • 底部导航 Dock
  • 链接 Link
  • 菜单 Menu
  • 导航栏 Navbar
  • 分页 Pagination
  • 步骤 Steps
  • 选项卡 Tabs
  • 提示 Alert
  • 结果页 Result
  • 空状态 Empty
  • 加载 Loading
  • 全局提示 Message
  • 进度条 Progress
  • 环形进度 Radial Progress
  • 骨架屏 Skeleton
  • 通知提醒框 Notification
  • 轻提示 Toast
  • 气泡确认框 Popconfirm
  • 气泡卡片 Popover
  • 工具提示 Tooltip
  • 日历 Calendar
  • 颜色选择器 ColorPicker
  • 复选框 Checkbox
  • 字段集 Fieldset
  • 表单 Form
  • 文件输入 File Input
  • 筛选器 Filter
  • 标签 Label
  • 单选框 Radio
  • 范围选择 Range
  • 评分 Rating
  • 分段选择 Segmented
  • 自动完成 AutoComplete
  • 选择器 Select
  • 树选择 TreeSelect
  • 树控件 Tree
  • 提及输入 Mentions
  • 穿梭框 Transfer
  • 漫游引导 Tour
  • 输入框 Input
  • 数字输入 InputNumber
  • 文本域 Textarea
  • 开关 Toggle
  • 校验器 Validator
  • 分隔线 Divider
  • 弹性布局 Flex
  • 分割面板 Splitter
  • 抽屉侧边栏 Drawer
  • 页脚 Footer
  • 栅格 Grid
  • 瀑布流 Masonry
  • 布局 Layout
  • 主视觉区 Hero
  • 指示器 Indicator
  • 组合项 Join
  • 蒙版 Mask
  • 水印 Watermark
  • 间距 Space
  • 堆叠 Stack
  • 浏览器样机 Mockup Browser
  • 代码样机 Mockup Code
  • 手机样机 Mockup Phone
  • 窗口样机 Mockup Window
目录统计
总条目
  • 按钮 Button
  • 排版 Typography
  • 时间选择器 TimePicker
  • 下拉菜单 Dropdown
  • 悬浮操作按钮 FAB
  • 模态框 Modal
  • 切换 Swap
  • 主题控制器 Theme Controller
  • 手风琴 Accordion
  • 头像 Avatar
  • 徽标 Badge
  • 卡片 Card
  • 轮播 Carousel
  • 聊天气泡 Chat
  • 折叠面板 Collapse
  • 倒计时 Countdown
  • 描述列表 Descriptions
  • 对比 Diff
  • 二维码 QRCode
  • 悬浮 3D 卡片 Hover 3D
  • 悬浮画廊 Hover Gallery
  • 键盘提示 Kbd
  • 列表 List
  • 统计 Stat
  • 状态 Status
  • 表格 Table
  • 文本轮播 Text Rotate
  • 时间线 Timeline
  • 锚点 Anchor
  • 固钉 Affix
  • 面包屑 Breadcrumbs
  • 底部导航 Dock
  • 链接 Link
  • 菜单 Menu
  • 导航栏 Navbar
  • 分页 Pagination
  • 步骤 Steps
  • 选项卡 Tabs
  • 提示 Alert
  • 结果页 Result
  • 空状态 Empty
  • 加载 Loading
  • 全局提示 Message
  • 进度条 Progress
  • 环形进度 Radial Progress
  • 骨架屏 Skeleton
  • 通知提醒框 Notification
  • 轻提示 Toast
  • 气泡确认框 Popconfirm
  • 气泡卡片 Popover
  • 工具提示 Tooltip
  • 日历 Calendar
  • 颜色选择器 ColorPicker
  • 复选框 Checkbox
  • 字段集 Fieldset
  • 表单 Form
  • 文件输入 File Input
  • 筛选器 Filter
  • 标签 Label
  • 单选框 Radio
  • 范围选择 Range
  • 评分 Rating
  • 分段选择 Segmented
  • 自动完成 AutoComplete
  • 选择器 Select
  • 树选择 TreeSelect
  • 树控件 Tree
  • 提及输入 Mentions
  • 穿梭框 Transfer
  • 漫游引导 Tour
  • 输入框 Input
  • 数字输入 InputNumber
  • 文本域 Textarea
  • 开关 Toggle
  • 校验器 Validator
  • 分隔线 Divider
  • 弹性布局 Flex
  • 分割面板 Splitter
  • 抽屉侧边栏 Drawer
  • 页脚 Footer
  • 栅格 Grid
  • 瀑布流 Masonry
  • 布局 Layout
  • 主视觉区 Hero
  • 指示器 Indicator
  • 组合项 Join
  • 蒙版 Mask
  • 水印 Watermark
  • 间距 Space
  • 堆叠 Stack
  • 浏览器样机 Mockup Browser
  • 代码样机 Mockup Code
  • 手机样机 Mockup Phone
  • 窗口样机 Mockup Window

Swap 切换容器

Swap 可以使用 Rue 当前视觉风格和 compound 结构,但现在补上了更顺手的状态 API。 你可以继续手写 checkbox,也可以直接用checked、defaultChecked、indeterminate和onCheckedChange让组件自己生成隐藏输入。

何时使用

  • 需要在两个内容之间做轻量切换,同时复用 Rue 当前的 swap 视觉和动效。
  • 需要图标切换、文案切换、菜单开合、主题切换这类“一进一出”的状态表达。
  • 需要 mixed/indeterminate 这类第三态,但又不想手动维护隐藏 checkbox。

推荐用法

# Props driven controlled swap

当前模式:light

# Props driven uncontrolled swap

这个例子不手写 input,但仍然是原生 checkbox 驱动。

# Indeterminate state

当前状态:mixed

# Disabled states

组合示例

下面这些示例全部保持自由组合写法,适合对照 swap 的底层结构和 class mode 使用方式。

# Swap text

Current: OFF

# Swap volume icons

# Swap icons with rotate effect

# Hamburger button

# Swap icons with flip effect

# Activate using class name

HOT
COLD
当前状态:inactive

API

推荐优先使用 props 驱动模式;如果你已经有自己的隐藏 checkbox,也可以使用基础结构。

属性说明类型默认值
activeclass mode 开关,追加 swap-active;适合外部 class 驱动booleanfalse
as根节点标签,默认 labelany'label'
checked受控选中态;未手写 input 时会自动生成 checkboxboolean-
defaultChecked非受控初始选中态booleanfalse
defaultIndeterminate非受控初始半选态,首次交互后会退出 mixedbooleanfalse
disabled禁用自动生成的 checkbox,并附加禁用视觉语义booleanfalse
effect推荐的效果写法,统一选择 rotate 或 flip'rotate' | 'flip'-
flip / rotate支持基础布尔写法booleanfalse
indeterminate受控半选态;自动输入模式下会同步到原生 checkbox.indeterminatebooleanfalse
inputClassName自动生成 checkbox 的 classNamestring-
inputProps自动生成 checkbox 的透传属性,如 name、value、idRecord<string, any>-
onChange变更事件,返回 checked、indeterminate、active、mode(event, meta) => void-
onCheckedChange更轻量的 checked 回调(checked, event) => void-

Compound parts

Swap.On:选中态显示
Swap.Off:未选中态显示
Swap.Indeterminate:半选态显示

FAQ

什么时候该手写 input,什么时候直接传 checked?

如果业务里只需要一个常规切换器,直接传checked、defaultChecked、onCheckedChange会更省事;如果你已经有现成的表单结构或需要完全接管输入节点, 继续手写input type="checkbox"也完全可以。

active 和 checked 有什么区别?

active只是追加swap-active,属于 class mode;checked/indeterminate则是 input mode,会驱动真实的 checkbox 状态。

effect 和 rotate / flip 应该怎么选?

新代码优先用effect,表达更集中;项目代码可以使用rotate或 flip也支持。

页内导航
页内导航
文档
  • 深度指南
  • 实战例子
  • 快速上手
  • 术语表
  • 错误码参照表
关于
  • 常见问题
  • 团队
  • 版本发布
  • 社区指南
生态
  • 插件
  • 组件库
  • 路由指南
  • Text.js
© 2024-2026 Xiangmin Liu
Rue.JS