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

Toast 轻提示

Toast 根容器负责 placement、stack 和 inset。根容器仍然负责 placement、stack 和 inset, 但单条提示现在可以直接用Toast.Item写出接近 message 的反馈体验:类型、标题、说明、 操作区、关闭按钮、自动关闭与悬停暂停都已经补充;现在还可以像常见 message API 一样通过Toast.useMessage()拿到messageApi和contextHolder, 在业务按钮、异步流程和页面局部容器里直接按 key 推送、更新和销毁消息;默认会弹到全局页面层, 只有显式传 getContainer={false}时才会留在当前 box 里,同时仍然使用 Rue 自己更轻、更靠近页面内容的视觉语气。

何时使用

  • 需要在页面局部提供轻量反馈,但不想上升成全局通知系统。
  • 希望像 message 一样直接描述成功、失败、加载、警告这些状态,又想保持更贴近 Rue 的视觉风格。
  • 希望在事件处理函数里直接触发反馈,而不是先把消息数组提升到页面状态。
  • 既要支持基础的 alert 容器写法,也想在业务里直接拿到可关闭、可自动关闭的单条提示能力。

# Message-like items

最直接的语义用法:把内容交给 Toast.Item,根容器继续负责定位和堆叠。

Draft synced
The latest edits have been pushed to your shared workspace.
Publish complete
The release has been deployed to production without errors.
Review pending
Two comments still need acknowledgement before merge.

# Variants and actions

soft、outline、solid 三种外观可以调整存在感,action 让单条提示具备 message 之上的轻量操作能力。

Soft
Soft feedback
Toast.Item 可以直接承载业务动作。
Outline
Outline feedback
Toast.Item 可以直接承载业务动作。
Solid
Solid feedback
Toast.Item 可以直接承载业务动作。

# Controlled and auto close

受控关闭适合和外部状态联动;自动关闭则提供了 message 常用的短时反馈体验,并支持 hover 暂停。

受控提示使用固定 key 反复显示或销毁;自动关闭提示每次生成新 key,悬停时会暂停倒计时。

# Toast.useMessage

参考常见 message hook 的形态:把 contextHolder 放进页面即可,真正的消息默认弹到全局页面层;如果你要留在当前 box,再显式传 getContainer={false}。

# Compound composition

如果标题、说明和操作区需要更强定制,可以直接使用 compound 子组件自己拼装。

R
Workspace synced
Compound API 适合带结构化说明、额外按钮和自定义图标的业务提示。

支持基础写法

基础的“Toast 只做容器、里面继续放 alert 或自定义节点”的使用方式完整提供。下面这些基础示例 都还在,只是按新的能力层次重新归组了。

# Toast with alert inside

展示基础示例,Toast 本体只包一层定位容器,内部内容完全由你决定。

当前页面内容
New message arrived.

# Toast placements

placement 九宫格别名和 horizontal / vertical 支持层仍然都可用,基础布局 API 不需要额外改造。

top-start
top-start
top
top
top-end
top-end
middle-start
middle-start
center
center
middle-end
middle-end
bottom-start
bottom-start
bottom
bottom
bottom-end
bottom-end

# Stacked toasts

基础的多条堆叠示例展示,同时和横向、倒序这些布局控制一起展示。

New mail arrived.
Message sent successfully.
Rollback ready
Deploy queued

# Inset and layer control

inset 负责把提示从边缘收进来,zIndex 用于压过页面中的局部浮层,适合嵌入 mock 页面或设计稿容器。

背景浮层
Layered above the card.
Inset keeps it off the edge.

# Custom host element

需要语义容器时,可以把根节点改成 section,并直接挂上 status / aria-live 之类的可访问性语义。

Auto save completed.
1 draft still requires review.

API

Toast.useMessage(options)

属性说明类型默认值
placement / inset / gap / zIndex复用 Toast 根容器的定位能力;默认消息层会挂到全局页面层,而不是被当前 box 裁住。ToastProps 子集placement = 'top'
getContainer控制消息挂载位置;默认挂到 document.body,传 false 时退回到 contextHolder 所在的局部 box。string | HTMLElement | (() => HTMLElement) | falsedocument.body
maxCount限制同时显示的消息数量;超过时会自动挤掉最早的一条。number-
duration给 hook 创建出来的消息设定默认自动关闭时长,单条消息可覆盖。number | null3
variant / closable / pauseOnHover / showIcon / type为整个 message 通道设定单条提示的默认外观和行为。ToastItemProps 子集-

返回值固定为[messageApi, contextHolder]。为了保持这类 hook 的用法习惯,contextHolder仍然建议真实渲染到页面里;默认情况下它主要跟随当前组件生命周期,真正的消息层会挂到document.body,传getContainer={false}时才会回到 holder 内。

messageApi

属性说明类型默认值
open(config)创建一条消息;返回关闭函数,适合临时保存句柄。(config: ToastMessageConfig) => () => void-
success / info / warning / error带语义类型的快捷方法,等价于 open({ type, ...config })。(config) => () => void-
loading(config)加载态快捷方法,默认会把 duration 设为 0,便于后续按 key 更新。(config) => () => void-
destroy(key?)销毁指定 key 的消息;不传 key 时清空当前 holder 里的全部消息。(key?: string | number) => void-

ToastMessageConfig

属性说明类型默认值
key稳定标识;重复调用同一个 key 时会原位更新,而不是追加新消息。string | number自动生成
contentmessage 风格的主内容;未传 children 时会直接渲染在正文区域。any-
children需要 richer JSX 时可直接传 children,优先级高于 content。any-
其余字段type、duration、action、closable、variant、icon、onClose 等字段复用 Toast.Item。ToastItemProps 子集-

Toast 根容器

属性说明类型默认值
as指定根节点标签,例如 div、sectionany'div'
gap控制多个 toast 项之间的间距,支持数字和任意 CSS 长度number | string-
horizontal横向位置;传入后会覆盖 placement 推导出的横轴结果'start' | 'center' | 'end'-
inset容器内边距,可统一设置,也可通过 x / y 分别控制横向与纵向留白number | string | { x?: number | string; y?: number | string }-
placement语义化九宫格定位别名,例如 top-end、center、bottom-start'top-start' | 'top' | 'top-center' | 'top-end' | 'middle-start' | 'middle' | 'middle-center' | 'middle-end' | 'bottom-start' | 'bottom' | 'bottom-center' | 'bottom-end' | 'start' | 'center' | 'end'-
reverse反转容器内子项顺序,适合最新消息置顶或横向倒序布局booleanfalse
stack堆叠方向,默认维持竖向通知流,也可以切到横向条带式布局'vertical' | 'horizontal''vertical'
vertical纵向位置;传入后会覆盖 placement 推导出的纵轴结果'top' | 'middle' | 'bottom'-
zIndex调整容器层级,适合叠放在抽屉、卡片或 mock 页面之上number | string-

Toast.Item 单条提示

属性说明类型默认值
action右侧操作区,可放按钮、链接或状态标签any-
as单条提示的根节点标签,默认 divany'div'
closable显示内建关闭按钮,并在点击时触发 onClose / onOpenChangebooleanfalse
closeIcon自定义关闭按钮图标any-
defaultOpen非受控初始显示状态booleantrue
description说明文案,适合放补充上下文或后续动作提示any-
duration自动关闭时长,单位秒;传入 0 或 null 时保持常驻number | null-
icon自定义图标;未传时会根据 type 渲染默认图标any-
onClose关闭完成时触发,meta.source 会标记 close 或 timeout(meta) => void-
onOpenChange显示状态变化回调,适合受控关闭或外部同步状态(open, meta) => void-
open受控显示状态boolean-
pauseOnHover自动关闭时鼠标移入是否暂停剩余计时booleantrue
showIcon关闭默认图标渲染,只保持文字和操作区booleantrue
title标题文案,适合放主状态结论any-
type语义类型,会同时影响默认图标、无障碍语义和视觉配色'neutral' | 'info' | 'success' | 'warning' | 'error' | 'loading''neutral'
variant提示外观风格,适合在页面层级里调节存在感'soft' | 'solid' | 'outline''soft'

Compound 子组件包括Toast.Icon、Toast.Content、Toast.Title、Toast.Description、Toast.Action和 Toast.Close。

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