mcpField
S
syncfusion-react-stepper

syncfusion-react-stepper

github.com/syncfusion设计与 UI3657 次安装1 周前更新
代码仓库

关于 syncfusion-react-stepper

面向 React 开发者的 Syncfusion Stepper 组件实现技能,用于展示并控制多步骤流程。文档涵盖导航、验证、外观定制、键盘操作和本地化。

主要功能

  1. 01配置水平或垂直步骤导航
  2. 02选择线性或非线性流程
  3. 03在步骤切换前验证输入
  4. 04定制步骤图标、标签和模板
  5. 05支持键盘操作、ARIA 和 RTL

适用场景

  1. 01构建电商结账流程
  2. 02制作分步注册表单
  3. 03创建软件配置向导
  4. 04设计带进度提示的问卷

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/react-ui-components-skills --skill syncfusion-react-stepper

安装后在 Claude Code 中输入/syncfusion-react-stepper确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
accessibility-globalization.md
advanced-patterns.md
animation-template-tooltip.md
events-and-interactions.md
getting-started.md
linear-flow-and-validation.md
methods-and-advanced.md
orientations-and-types.md
steps-and-configuration.md

详细介绍

实现 Syncfusion React Stepper

Stepper 组件通过可视化指示器、步骤标签和灵活配置,引导用户完成多步骤工作流或流程。它非常适用于向导、结账流程、引导流程,以及任何需要按顺序导航的引导式用户体验。

何时使用此技能

在以下情况需要使用 Stepper 组件:

  • 引导用户完成多步骤流程(结账、注册、设置向导)
  • 显示带进度指示的分步工作流
  • 在进入下一步之前验证用户输入
  • 支持线性或非线性导航模式
  • 使用图标、标签和模板自定义外观
  • 为不同语言或地区本地化内容

组件概览

主要功能:

  • 步骤导航: 支持水平和垂直方向,以及顺序导航或自由导航
  • 步骤类型: 默认模式(图标 + 标签)、仅标签模式或仅指示器模式
  • 事件: 跟踪步骤变更、验证和交互
  • 样式: 动画、模板、自定义 CSS 和工具提示
  • 无障碍性: 完整的键盘导航和 ARIA 支持
  • 全球化: 多语言支持和 RTL 兼容性

文档与导航指南

开始使用与安装

📄 阅读: references/getting-started.md

  • 安装程序包和依赖项
  • 导入 CSS 并设置主题
  • 创建首个 Stepper
  • 初始配置和渲染
核心配置:步骤和属性

📄 阅读: references/steps-and-configuration.md

  • 使用 StepDirective 添加和定义步骤
  • 图标 CSS、文本和标签属性
  • 管理当前活动步骤
  • 禁用状态和自定义
  • 配置 CSS 类
布局与外观:方向和类型

📄 阅读: references/orientations-and-types.md

  • 水平和垂直方向
  • 步骤类型模式(Default、Label、Indicator)
  • 标签位置(Top、Bottom、Start、End)
  • RTL 支持和响应式设计
交互与行为:事件

📄 阅读: references/events-and-interactions.md

  • 生命周期事件:created、stepChanged、stepChanging
  • 用户交互事件:stepClick、beforeStepRender
  • 事件参数和处理模式
  • 防止不需要的状态转换
工作流控制:线性流程和验证

📄 阅读: references/linear-flow-and-validation.md

  • 配置线性 Stepper 以实现顺序导航
  • 步骤验证和状态管理
  • 防止无效状态转换
  • 重置 Stepper 状态
高级样式与自定义

📄 阅读: references/animation-template-tooltip.md

  • 动画配置和时长
  • 自定义步骤模板
  • 集成和显示工具提示
  • 渲染自定义内容
方法和高级模式

📄 阅读: references/methods-and-advanced.md

  • 组件方法(reset 等)
  • 两种 API 模式(基于组件与基于属性)
  • 高级用例和模式
  • 性能优化提示
最佳实践:无障碍性与本地化

📄 阅读: references/accessibility-globalization.md

  • 符合 WCAG 标准并使用 ARIA 属性
  • 键盘导航指南
  • 全球化和本地化
  • RTL 支持实现

快速入门示例

模式 1:基于组件(StepsDirective)
import React from 'react';
import { StepperComponent, StepsDirective, StepDirective } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  return (
    <div>
      <StepperComponent>
        <StepsDirective>
          <StepDirective iconCss="sf-icon-cart" label="Cart" />
          <StepDirective iconCss="sf-icon-transport" label="Delivery" />
          <StepDirective iconCss="sf-icon-payment" label="Payment" />
          <StepDirective iconCss="sf-icon-success" label="Confirmation" />
        </StepsDirective>
      </StepperComponent>
    </div>
  );
}

export default App;
模式 2:基于属性(steps 数组)
import React from 'react';
import { StepperComponent } from '@syncfusion/ej2-react-navigations';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-navigations/styles/tailwind3.css';

function App() {
  const steps = [
    { iconCss: 'sf-icon-cart', label: 'Cart' },
    { iconCss: 'sf-icon-transport', label: 'Delivery' },
    { iconCss: 'sf-icon-payment', label: 'Payment' },
    { iconCss: 'sf-icon-success', label: 'Confirmation' }
  ];

  return (
    <div>
      <StepperComponent steps={steps} />
    </div>
  );
}

export default App;

常见模式

模式 1:带验证的向导
const [activeStep, setActiveStep] = React.useState(0);
const stepperRef = React.useRef(null);

const handleStepChanging = (args) => {
  // Validate current step before advancing
  if (!validateStep(activeStep)) {
    args.cancel = true; // Prevent transition
  }
};

<StepperComponent 
  ref={stepperRef}
  stepChanging={handleStepChanging}
>
  {/* steps */}
</StepperComponent>
模式 2:线性与非线性导航
// Linear: Users must complete steps sequentially
<StepperComponent linear={true}>

// Non-linear: Users can skip to any step
<StepperComponent linear={false}>
模式 3:响应式方向
// Auto-switch orientation based on screen size
const [orientation, setOrientation] = React.useState('horizontal');

React.useEffect(() => {
  const handleResize = () => {
    setOrientation(window.innerWidth < 768 ? 'vertical' : 'horizontal');
  };
  window.addEventListener('resize', handleResize);
  return () => window.removeEventListener('resize', handleResize);
}, []);

<StepperComponent orientation={orientation}>

主要属性和配置

组件属性
属性类型默认值用途
activeStepnumber0当前激活步骤的索引
animationStepperAnimationSettingsModelundefined动画配置(启用、时长、延迟)
cssClassstring''用于自定义样式的 CSS 类
enablePersistencebooleanfalse页面重新加载时保留组件状态
enableRtlbooleanfalse启用从右到左的布局
labelPositionstring'Bottom'标签位置:'Top'、'Bottom'、'Start'、'End'
linearbooleanfalse强制按顺序导航步骤
localestring'en-US'本地化区域性代码
orientationstring'horizontal'布局方向:'horizontal' 或 'vertical'
readOnlybooleanfalse禁止用户交互
showTooltipbooleantrue悬停时显示工具提示
stepTypestring'Default'视觉模式:'Default'、'Label'、'Indicator'
stepsStepModel[][]步骤对象数组(基于属性的模式)
templatestring | functionundefined步骤的自定义模板
tooltipTemplatestring | functionundefined工具提示的自定义模板
步骤属性(StepModel)
属性类型用途
cssClassstring用于单个步骤样式设置的 CSS 类
disabledboolean禁用该步骤
iconCssstring步骤的图标 CSS 类
isValidboolean步骤的验证状态
labelstring步骤标签文本
optionalboolean将步骤标记为可选
statusstring步骤状态:'NotStarted'、'InProgress'、'Completed'
textstring文本内容(通常为数字)
动画设置
属性类型默认值用途
enablebooleantrue启用动画
durationnumber400动画时长,单位为毫秒
delaynumber0动画开始前的延迟
事件
事件触发时机用途参数
created组件初始化后设置、初始化Event
stepChanged步骤更改后更新 UI、加载内容StepperChangedEventArgs
stepChanging步骤更改前验证、阻止切换StepperChangingEventArgs
stepClick用户点击步骤时跟踪交互StepperClickEventArgs
beforeStepRender渲染每个步骤前自定义步骤外观StepperRenderingEventArgs
方法
方法参数返回值用途
reset()无void将步骤导航器重置为初始状态(activeStep: 0)
nextStep()无void以编程方式移至下一步
previousStep()无void以编程方式移至上一步
refreshProgressbar()无void容器大小调整时刷新进度条
destroy()无void销毁组件并释放资源

事件参数参考:

  • StepperChangedEventArgs: activeStep、previousStep、isInteracted、name、event、element
  • StepperChangingEventArgs: activeStep、previousStep、cancel、isInteracted、name、event、element
  • StepperClickEventArgs: activeStep、name、event、element
  • StepperRenderingEventArgs: activeStep、name、element

常见用例

  • 电子商务结账: 包含订单审核、配送和付款的多步骤结账流程
  • 用户注册: 包含邮箱、个人资料和验证的多步骤注册流程
  • 设置向导: 通过配置步骤引导用户熟悉软件
  • 调查表单: 带有进度提示的分步问卷
  • 安装指南: 包含说明和验证的安装步骤

评论

支持 Markdown