🎉🎉🎉一文全面了解:react-antd-admin 如何实现引导功能

218 阅读2分钟

以下是一个完整的示例代码,演示了如何在React应用中使用driver.js来为用户提供第一次引导。

首先,确保您已经安装了driver.js和所需的React依赖项。

npm install driver.js
npm install react react-dom

接下来,创建一个React组件,并在其中设置引导。以下是一个示例组件:

import React, { useEffect } from 'react';
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';

function GuidedTour() {
  useEffect(() => {
    function startGuidedTour() {
      const driver = new Driver();

      driver.defineSteps([
        {
          element: '.step-1',
          popover: {
            title: '第一步',
            description: '这是第一步的描述。',
            position: 'bottom',
          },
        },
        {
          element: '.step-2',
          popover: {
            title: '第二步',
            description: '这是第二步的描述。',
            position: 'top',
          },
        },
        // 可以添加更多的步骤
      ]);

      driver.start();
    }

    startGuidedTour();
  }, []);

  return (
    <div>
      <h1>引导教程示例</h1>
      <div className="step-1">步骤 1:要引导的元素</div>
      <div className="step-2">步骤 2:要引导的另一个元素</div>
      {/* 可以添加更多的页面内容 */}
    </div>
  );
}

export default GuidedTour;

在此示例中,我们创建了一个名为GuidedTour的React组件,并在useEffect中触发了引导教程。引导教程在组件挂载后开始。

确保在您的应用中正确引入和渲染这个GuidedTour组件。用户访问该组件时,将会看到引导教程的步骤。

请注意,这只是一个基本示例。您可以根据您的应用程序的需要添加更多步骤和自定义样式。希望这可以帮助您开始在React应用中使用driver.js进行用户引导。

react-antd-admin 是根据以下

driver.ts

// 文档在此:https://driverjs.com/docs/basic-usage
import { driver, DriveStep } from "driver.js";
import 'driver.js/dist/driver.css';

export interface ICDriverOptions {
    animate?: boolean,
    showProgress?: boolean,
    showButtons?: any,
    popoverClass?: string
    overlayColor?: string
}

class CDriver {
    public initDriver(steps: DriveStep[], options? : ICDriverOptions) {
        const originOps = {
            showButtons: ['next', 'previous', 'close'],
            showProgress: true,
        }
        const results = Object.assign({}, options, originOps)
        const dObj = driver({
            ...results,
            steps,
        });

        dObj.drive()
    }
}

const cDriver = new CDriver()

export default cDriver

driver.steps.ts

// 配置引导页提示选项
import { DriveStep } from 'driver.js'
export const driverSteps = {
    steps: [
        {
            element: '.ant-btn.ant-btn-text.ant-btn-icon-only',
            popover: {
                title: '展开收起',
                description: '可以点击按钮来展开收起左侧菜单.'
            }
        },
        {
            element: '.user-info',
            popover: {
                title: '退出操作',
                description: '可以点击按钮来退出登录.'
            }
        },
        {
            element: '.copy-text',
            popover: {
                title: '文本拷贝',
                description: '点击拷贝按钮可以进行文本拷贝'
            }
        },
        {
            element: '.react-quill-text',
            popover: {
                title: '富文本编辑器',
                description: '可以进行富文本编辑'
            }
        }
    ] as DriveStep []
}

效果

image.png