For AI agents: the complete documentation index is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms.txt, the full documentation bundle is available at https://ifhover.github.io/leaf-ui/v/0.6.0/llms-full.txt, and this page is available as Markdown at https://ifhover.github.io/leaf-ui/v/0.6.0/components/tour.md.
  • 简体中文
  • Tour 引导

    分步骤介绍页面上的功能。

    基础用法

    你的工作区

    basic.tsx
    import { Button, Card, Space, Tour } from '@ifhover/leaf-ui';
    
    import { useRef, useState } from 'react';
    
    export function TourBasic() {
      const [open, setOpen] = useState(false),
        [current, setCurrent] = useState(0);
      const create = useRef<HTMLButtonElement>(null),
        settings = useRef<HTMLButtonElement>(null);
      return (
        <Card title={'你的工作区'}>
          <Space wrap>
            <Button ref={create}>{'新建项目'}</Button>
            <Button ref={settings} variant="outline">
              {'工作区设置'}
            </Button>
            <Button
              variant="ghost"
              onClick={() => {
                setCurrent(0);
                setOpen(true);
              }}
            >
              {'开始引导'}
            </Button>
          </Space>
          <Tour
            open={open}
            current={current}
            onChange={setCurrent}
            onClose={() => setOpen(false)}
            steps={[
              {
                key: 'create',
                title: '创建第一个项目',
                description: '把相关任务放在同一个项目中。',
                target: () => create.current,
              },
              {
                key: 'settings',
                title: '按团队习惯设置',
                description: '在工作区设置中调整团队偏好。',
                target: () => settings.current,
              },
            ]}
          />
        </Card>
      );
    }
    

    欢迎说明

    basic.tsx
    import { Button, Tour } from '@ifhover/leaf-ui';
    
    import { useState } from 'react';
    
    export function TourCentered() {
      const [open, setOpen] = useState(false);
      return (
        <>
          <Button variant="outline" onClick={() => setOpen(true)}>
            {'查看欢迎说明'}
          </Button>
          <Tour
            open={open}
            onClose={() => setOpen(false)}
            steps={[
              {
                title: '欢迎来到 Leaf',
                description: '未指定目标的说明会显示在页面中央。',
              },
            ]}
          />
        </>
      );
    }
    

    TourStep

    属性类型默认值说明
    keystring—稳定且唯一的标识。
    titleReactNode—必需。标题内容。
    descriptionReactNode—补充说明。
    targetstring | (() => HTMLElement | null)—目标的选择器或返回元素的函数;省略时居中。
    placementPopupOptions['popupPlacement']—布局或展示位置。

    Tour API

    属性类型默认值说明
    openboolean—必需。控制面板是否展开。
    stepsreadonly TourStep[]—必需。引导的步骤列表。
    currentnumber—受控的当前步骤索引。
    defaultCurrentnumber0初始步骤索引。
    onChange(current: number) => void—值发生变化时调用。
    onClose() => void—请求关闭时调用。
    onFinish() => void—完成时调用一次。
    missingTarget'center' | 'skip' | 'close''center'目标缺失时居中、跳过或关闭。
    maskbooleantrue展示引导遮罩。
    paddingnumber8内容或高亮目标的内边距。
    getPopupContainerPopupOptions['getPopupContainer']—返回浮层的挂载容器,也可返回 ShadowRoot。

    类型与交互

    组装可复用配置时,可导入对应的属性和数据类型。

    import type { TourStep, TourProps } from '@ifhover/leaf-ui';

    为仅展示图标的操作提供可访问名称。交互控件支持键盘操作,并跟随 ConfigProvider 的主题和减少动画设置。