|
发表于 2023-1-5 17:37:26
|
显示全部楼层
通常,在产品发布新版本或者有新功能上线时,都会开发一个新手引导功能来引导用户了解应用的功能。在前端开发中,如何快速地开发新手引导功能呢,下面介绍几个开箱即用的新手引导组件库。
1,Intro.js
Intro.js是一个使用广泛的产品引导库,在Github上拥有超过21.7k的Star。具有以下特点:
- 无依赖:不需要任何其他依赖。
- 小而快:库文件较小使得引导过程流畅直观,JavaScript 文件的整体大小为 10KB,CSS 为 2.5KB。
- 用户友好:提供多种主题,用户可以根据喜好选择的主题。
- 浏览器兼容性:支持所有的主流浏览器,如 Google Chrome、Mozilla Firefox、Opera、Safari 等 。
- 文档完善:文档包含了基本的使用方法、每个元素的样本和示例。

e5137a97908344e88d3ab51303245be1_noop.gif
和其他组件库的使用流程一样,需要先在项目中使用以下命令来安装 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 元素内的焦点捕获。
- 高度可定制:允许在不影响性能的情况下更改外观。
- 框架支持:随时融入项目的前端框架。
- 文档完善:文档涵盖安装和自定义,包括项目的主题和样式。

0100ff0f21a243e5a202c3888441bb6e_noop.gif
使用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=&#34;button dark&#34; 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,具有以下特点:

2d4528d7f5f040198f78816264ab2d58_noop.gif
在项目中使用 react-joyride之前,需要使用以下命令来安装 react-joyride。
npm i react-joyride然后,在引导页面使用以下方式来在 React 中使用 react-joyride。
import Joyride from &#39;react-joyride&#39;;
export class App extends React.Component {
state = {
steps: [
{
target: &#39;.my-first-step&#39;,
content: &#39;This is my awesome feature!&#39;,
},
{
target: &#39;.my-other-step&#39;,
content: &#39;This another awesome feature!&#39;,
},
...
]
};
render () {
const { steps } = this.state;
return (
<div className=&#34;app&#34;>
<Joyride
steps={steps}
...
/>
...
</div>
);
}
}项目链接:https://github.com/gilbarbara/react-joyride
4,Vue Tour
Vue Tour是一个轻巧、简单且可自定义的新手指引组件,专门为Vue.js 定制,它提供了一种快速简便的方法来指导用户使用应用,目前它在 Github 上拥有 2.12k Star。

0af9a383d934426898f8efcf2b78bad2_noop.gif
首先,我们需要通过以下命令来安装Vue Tour。
npm install vue-tour然后,在应用入口文件(通常是 main.js)中导入插件,并在 Vue 中注册它,可以添加默认提供的样式或根据自己的喜好自定义它们。
import Vue from &#39;vue&#39;
import App from &#39;./App.vue&#39;
import VueTour from &#39;vue-tour&#39;
require(&#39;vue-tour/dist/vue-tour.css&#39;)
Vue.use(VueTour)
new Vue({
render: h => h(App)
}).$mount(&#39;#app&#39;)最后,再将 v-tour 组件放入模板中的任何位置(通常在 App.vue 中),并向其传递一系列步骤,每个步骤的 target 属性可以将应用的任何组件中的 DOM 元素作为 target。
<template>
<div>
<div id=&#34;v-step-0&#34;>A DOM element on your page. The first step will pop on this element because its ID is &#39;v-step-0&#39;.</div>
<div class=&#34;v-step-1&#34;>A DOM element on your page. The second step will pop on this element because its ID is &#39;v-step-1&#39;.</div>
<div data-v-step=&#34;2&#34;>A DOM element on your page. The third and final step will pop on this element because its ID is &#39;v-step-2&#39;.</div>
<v-tour name=&#34;myTour&#34; :steps=&#34;steps&#34;></v-tour>
</div>
</template>
<script>
export default {
name: &#39;my-tour&#39;,
data () {
return {
steps: [
{
target: &#39;#v-step-0&#39;, // We&#39;re using document.querySelector() under the hood
header: {
title: &#39;Get Started&#39;,
},
content: `Discover <strong>Vue Tour</strong>!`
},
{
target: &#39;.v-step-1&#39;,
content: &#39;An awesome plugin made with Vue.js!&#39;
},
{
target: &#39;[data-v-step=&#34;2&#34;]&#39;,
content: &#39;Try it, you&#39;ll love it!<br>You can put HTML in the steps and completely customize the DOM to suit your needs.&#39;,
params: {
placement: &#39;top&#39; // Any valid Popper.js placement. See https://popper.js.org/popper-documentation.html#Popper.placements
}
}
]
}
},
mounted: function () {
this.$tours[&#39;myTour&#39;].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 &#39;@reactour/tour&#39;
ReactDOM.render(
<TourProvider steps={steps}>
<App />
</TourProvider>,
document.getElementById(&#39;root&#39;)
)
const steps = [
{
selector: &#39;.first-step&#39;,
content: &#39;This is my first Step&#39;,
},
// ...
]然后,在应用树中的某个地方,使用 useTour hook 来控制 Tour。
import { useTour } from &#39;@reactour/tour&#39;
function App() {
const { setIsOpen } = useTour()
return (
<>
<p className=&#34;first-step&#34;>
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 |
|