前端开发如何做新手引导

news2024/11/28 8:40:12

通常,在产品发布新版本或者有新功能上线时,都会开发一个新手引导功能来引导用户了解应用的功能。在前端开发中,如何快速地开发新手引导功能呢,下面介绍几个开箱即用的新手引导组件库。

1,Intro.js

Intro.js是一个使用广泛的产品引导库,在Github上拥有超过21.7k的Star。具有以下特点:

  • 无依赖:不需要任何其他依赖。
  • 小而快:库文件较小使得引导过程流畅直观,JavaScript 文件的整体大小为 10KB,CSS 为 2.5KB。
  • 用户友好:提供多种主题,用户可以根据喜好选择的主题。
  • 浏览器兼容性:支持所有的主流浏览器,如 Google Chrome、Mozilla Firefox、Opera、Safari 等 。
  • 文档完善:文档包含了基本的使用方法、每个元素的样本和示例。

在这里插入图片描述

和其他组件库的使用流程一样,需要先在项目中使用以下命令来安装 Intro.js库。

npm install intro.js - save

按照如下的步骤开发引导功能:

  • 将 JavaScript 和 CSS 文件(intro.js 和 introjs.css)添加到项目中。
  • 将 data-intro 和 data-step 属性添加到相关的 HTML 元素,这将为特定元素启用 intro.js。

接着,调用以下JavaScript 函数,启动Intro.js。

introJs().start();

然后,使用以下附加参数在特定元素或类上调用 Intro.js启动。

introJs(".introduction-farm").start();

项目链接:https://github.com/usablica/intro.js

2,Shepherd

Shepherd是一个前端JavaScript引导库,在Github上拥有10.8kGitHub Star,支持在 React、Vue、Angular 等多个前端框架中开箱即用,其具有以下特点:

  • 辅助功能:提供键盘导航支持,遵循 a11y 规范,还可以使用 JavaScript 启用 DOM 元素内的焦点捕获。
  • 高度可定制:允许在不影响性能的情况下更改外观。
  • 框架支持:随时融入项目的前端框架。
  • 文档完善:文档涵盖安装和自定义,包括项目的主题和样式。

在这里插入图片描述

使用Shepherd之前,我们可以使用以下命令来安装 shepherd.js。

npm install shepherd.js -save
npm install react-shepherd --save
npm install vue-shepherd --save
npm install angular-shepherd --save

安装完成之后,我们需要使用shepherd组件来嵌套引导页面。

import React, { Component, useContext } from 'react'
import { ShepherdTour, ShepherdTourContext } from 'react-shepherd'
import newSteps from './steps'


const tourOptions = {
  defaultStepOptions: {
    cancelIcon: {
      enabled: true
    }
  },
  useModalOverlay: true
};


function Button() {
  const tour = useContext(ShepherdTourContext);


  return (
    <button className="button dark" onClick={tour.start}>
      Start Tour
    </button>
  );
}


class App extends Component {
  render() {
    return (
      <div>
        <ShepherdTour steps={newSteps} tourOptions={tourOptions}>
          <Button />
        </ShepherdTour>
      </div>
    );
  }
}

为了支持React、Vue、Angular等不同的框架,Shepherd提供了不同的地址:

shepherd:https://github.com/shipshapecode/shepherd
react-shepherd:https://github.com/shipshapecode/react-shepherd
vue-shepherd:https://github.com/shipshapecode/vue-shepherd
angular-shepherd:https://github.com/shipshapecode/angular-shepherd

3,React Joyride

React Joyride 是一款用于向用户介绍新功能的React项目新手引导库,在GitHub上拥有超过5.1k的Star,具有以下特点:

  • 易于使用
  • 高度可定制
  • 文档完善
  • 积极维护

在这里插入图片描述

在项目中使用 react-joyride之前,需要使用以下命令来安装 react-joyride。

npm i react-joyride

然后,在引导页面使用以下方式来在 React 中使用 react-joyride。

import Joyride from 'react-joyride';


export class App extends React.Component {
  state = {
    steps: [
      {
        target: '.my-first-step',
        content: 'This is my awesome feature!',
      },
      {
        target: '.my-other-step',
        content: 'This another awesome feature!',
      },
      ...
    ]
  };


  render () {
    const { steps } = this.state;


    return (
      <div className="app">
        <Joyride
          steps={steps}
          ...
        />
        ...
      </div>
    );
  }
}

项目链接:https://github.com/gilbarbara/react-joyride

4,Vue Tour

Vue Tour是一个轻巧、简单且可自定义的新手指引组件,专门为Vue.js 定制,它提供了一种快速简便的方法来指导用户使用应用,目前它在 Github 上拥有 2.12k Star。

在这里插入图片描述

首先,我们需要通过以下命令来安装Vue Tour。

npm install vue-tour

然后,在应用入口文件(通常是 main.js)中导入插件,并在 Vue 中注册它,可以添加默认提供的样式或根据自己的喜好自定义它们。

import Vue from 'vue'
import App from './App.vue'
import VueTour from 'vue-tour'


require('vue-tour/dist/vue-tour.css')


Vue.use(VueTour)


new Vue({
  render: h => h(App)
}).$mount('#app')

最后,再将 v-tour 组件放入模板中的任何位置(通常在 App.vue 中),并向其传递一系列步骤,每个步骤的 target 属性可以将应用的任何组件中的 DOM 元素作为 target。

<template>
  <div>
    <div id="v-step-0">A DOM element on your page. The first step will pop on this element because its ID is 'v-step-0'.</div>
    <div class="v-step-1">A DOM element on your page. The second step will pop on this element because its ID is 'v-step-1'.</div>
    <div data-v-step="2">A DOM element on your page. The third and final step will pop on this element because its ID is 'v-step-2'.</div>


    <v-tour name="myTour" :steps="steps"></v-tour>
  </div>
</template>


<script>
  export default {
    name: 'my-tour',
    data () {
      return {
        steps: [
          {
            target: '#v-step-0',  // We're using document.querySelector() under the hood
            header: {
              title: 'Get Started',
            },
            content: `Discover <strong>Vue Tour</strong>!`
          },
          {
            target: '.v-step-1',
            content: 'An awesome plugin made with Vue.js!'
          },
          {
            target: '[data-v-step="2"]',
            content: 'Try it, you'll love it!<br>You can put HTML in the steps and completely customize the DOM to suit your needs.',
            params: {
              placement: 'top' // Any valid Popper.js placement. See https://popper.js.org/popper-documentation.html#Popper.placements
            }
          }
        ]
      }
    },
    mounted: function () {
      this.$tours['myTour'].start()
    }
  }
</script>

项目链接:https://github.com/pulsardev/vue-tour

5,Reactour

Reactour 是一个广泛使用的React 应用引导库,在GitHub上拥有3.2K的Star,它提供了一种简单的方式来引导用户浏览网站和应用。首先,需要通过以下命令来安装 reactour。

npm i -S @reactour/tour

安装完成之后,在应用的根组件添加 TourProvider,传递元素的步骤以在浏览期间突出显示。

import { TourProvider } from '@reactour/tour'


ReactDOM.render(
  <TourProvider steps={steps}>
    <App />
  </TourProvider>,
  document.getElementById('root')
)


const steps = [
  {
    selector: '.first-step',
    content: 'This is my first Step',
  },
  // ...
]

然后,在应用树中的某个地方,使用 useTour hook 来控制 Tour。

import { useTour } from '@reactour/tour'


function App() {
  const { setIsOpen } = useTour()
  return (
    <>
      <p className="first-step">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at
        finibus nulla, quis varius justo. Vestibulum lorem lorem, viverra porta
        metus nec, porta luctus orci
      </p>
      <button onClick={() => setIsOpen(true)}>Open Tour</button>
    </>
  )
}

项目链接:https://github.com/elrumordelaluz/reactour

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/41939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

外汇天眼:外汇杠杆的“诱惑”到底有多大,为何做外汇的人都那么上瘾?

近些年随着外汇保证金在中国的持续发展&#xff0c;中国的外汇保证金交易就像当初的股票市场一样&#xff0c;从无到有&#xff0c;不断的发展壮大&#xff0c;再加上国内金融市场对外开放步伐加快&#xff0c;在中国国内参与外汇市场的投资者也是连年上升&#xff0c;那么这个…

【EI会议2023】12.20之后ddl

csdn 摘出来上文中的一些ddl ICET 2023(成都 5月12日-5月15日) http://www.icet.net/track9.html 截稿时间2022.12.20 通知录用:2023.1.20 SEGRE 2023(长沙 4月21日-4月23日) http://www.icsegre.org/ 截稿时间2023.2.26 通知录用:2023.4.3 ICIBA 2023(重庆 5月26日-…

全同态加密:GSW

参考文献&#xff1a; Micciancio D, Peikert C. Trapdoors for lattices: Simpler, tighter, faster, smaller[C]//Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2012: 700-718.Gentry C, S…

Mysql-解决Truncated incorrect DOUBLE value xxx

问题 出现这种问题一般来说就是多表操作的时候, 使用的字段类型不一致导致的(查询除外),我们来看下真实案例 在hd_user表中parentId是binint类型 而在hd_user_increment_copy1表中parentId是varchar类型, 如果只是查询的话那么是不会报错的,我把查询sql提出了运行是可以的 …

[附源码]计算机毕业设计springboot保护濒危动物公益网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Java 编程性能调优

把 Java 性能调优分成 5 个层级&#xff1a;Java 编程、多线程、JVM 性能检测、设计模式、数据库性能&#xff0c;每个层级下都覆盖了最常见的优化问题。下面分别给你梳理一下&#xff1a; 可参考地址&#xff1a;Java性能调优全攻略来了_着火点的博客-CSDN博客_java性能调优 …

软件设计与体系结构编程题汇总

现在需要开发一款游戏软件&#xff0c;请以单例模式来设计其中的 Boss 角色。角色的属性和动作可以任意设计。 要求&#xff1a;该 Boss 类可以在多线程中使用。&#xff08; 8 分&#xff09; Public class Boss{Private static Boss instance; //(2 分&#xff09;Private …

vivo大数据日志采集Agent设计实践

作者&#xff1a;vivo 互联网存储技术团队- Qiu Sidi 在企业大数据体系建设过程中&#xff0c;数据采集是其中的首要环节。然而&#xff0c;当前行业内的相关开源数据采集组件&#xff0c;并无法满足企业大规模数据采集的需求与有效的数据采集治理&#xff0c;所以大部分企业都…

车间工厂看板还搞不定,数据可视化包教包会

在智能工厂的建设过程中&#xff0c;为了让每条生产线的生产进度和状态更加清晰&#xff0c;经常需要将生产信息情况显示在电视看板上&#xff0c;称为智能工厂-车间数据可视化大屏方案。 根据工厂和车间的大小&#xff0c;可能会使用 10到100 台甚至更多的电视看板来显示数据…

Nexus3搭建maven私服

Nexus是一个强大的Maven仓库管理器&#xff0c;它极大地简化了自己内部仓库的维护和外部仓库的访问&#xff0c;也就是我们常说的私服 1、下载nexus3.x&#xff1a; Nexus官方下载地址 官方下载极其慢&#xff0c;这里提供网盘下载&#xff1a; 链接https://pan.baidu.com/s/…

Briefings in bioinformatics2021 | MolGNet+:基于分子全局表征的高效自监督框架,用于药物发现

原文标题&#xff1a;An effective self-supervised framework for learning expressive molecular global representations to drug discovery 代码&#xff1a;https://github.com/pyli0628/MPG.git 一、问题提出 &#xff08;分子性质预测的背景都是老生常谈的&#xff0…

loam 框架流程描述

前端流程(scanRegistration.cpp) 多线激光雷达即有多个激光发射器同时工作&#xff0c;如常见的 Velodyne16,就是共有 16 个激光发射器&#xff0c;一般这些发射器竖排排列&#xff0c;然后一起水平旋转。 激光雷达在一定的时间内旋转一圈&#xff0c;即一帧的点云数据。值得注…

Flutter教程之使用不同的方法维护 Flutter 应用程序状态

在开发应用程序时,主要关注的是当我们使用Tabs或Bottom Navigation Bar类的Widgets (Flutter 中几乎所有东西都是 widgets)时我们的应用程序将如何执行。 至于示例,让我们考虑一下我们有三个选项卡 UsersTab2Tab3在BottomNavBar和第一个索引上,我们有一个API 调用请求,它…

高效!启科量子线路模拟器 QuSprout 与 Amazon HPC 集成,赋能量子计算

KY1, Bertran Shao2, Adam Sun Amazon HERO&#xff1b;2.开发者生态负责人&#xff1b;3.Solutions Architect2022.11.17&#xff0c;启科量子正式开源其内部团队研发的量子线路模拟器&#xff1a;QuSprout 软件。结合早前其开源的启科量子编程框架 QuTrunk&#xff0c;开发者…

能源与经济面板数据集(中国能源统计年鉴面板数据+区域经济、人口与二氧化碳排放量面板数据)

一、中国能源统计年鉴面板数据 1、数据来源&#xff1a;中国能源统计年鉴 2、时间跨度&#xff1a;1991-2020 3、区域范围&#xff1a;全国 4、指标说明&#xff1a; 部分数据如下&#xff1a; 能源平衡表&#xff1a; 部分指标如下&#xff1a; 国内生产总值增长速度&am…

HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

地图轨迹跟踪系统设计与实现(Android+Eclipse+APP)

目 录 1 在线地图轨迹APP概述 1 1.1 本论文的背景及意义 1 1.2 本论文的主要方法和研究进展 1 1.3 本论文的主要内容 1 1.4 本论文的结构安排 1 2 系统分析 3 2.1 研究目标 3 2.2 可行性分析 3 2.2.1 经济可行性 3 2.2.2 技术的可行性 3 2.3 需求分析 3 2.4 性能分析 4 3 系统开…

TPAMI 2022 | 自动搜索文本识别网络的高性能特征提取器

©PaperWeekly 原创 作者 | 陈卓群单位 | 清华大学论文标题&#xff1a;Searching a High Performance Feature Extractor for Text Recognition Network收录情况&#xff1a;TPAMI论文链接&#xff1a;https://ieeexplore.ieee.org/document/9887897代码链接&#xff1a;…

HTTPS(对称加密+非对称加密+证书)

目录 1. 加密和解密 HTTPS工作过程 2. 对称加密 3. 对称加密 4. 既然都有非对称加密了,那为啥还要有对称加密 5. 中间人攻击 6. 引入证书 HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层. HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在…

笔记本电脑恢复删除数据的5种方法

我们都知道笔记本电脑比台式电脑拥有方便携带的优势&#xff0c;但是不论是笔记本还是台式电脑&#xff0c;难免会出现数据丢失情况&#xff0c;如最近有位小伙伴&#xff0c;不小心将自己出差需要使用的工作资料误删了&#xff0c;那么问题来了&#xff0c;笔记本数据删除怎么…