vue3項(xiàng)目新用戶引導(dǎo)組件driver.js示例詳解
好用的用戶引導(dǎo)插件有 intro.js 和 driver.js 兩個(gè),對(duì)比了一下,最終還是使用了driver.js
主要有以下原因:
- 用法簡(jiǎn)單
- 可以商用
- 總要選一個(gè)吧
項(xiàng)目使用的是vue3+ts
因?yàn)槎鄠€(gè)地方需要使用引導(dǎo),就直接做成組件使用
不廢話上代碼
yarn add driver.js 或者 npm i driver.js
組件代碼

<!--
* @Description: 新用戶引導(dǎo)組件
* @LastEditTime: 2022-08-19 11:43:25
-->
<template></template>
<script lang="ts" setup>
import { onMounted } from "vue"
import "driver.js/dist/driver.min.css";
import Driver from "driver.js";
interface IPopover {
title: string,
description: string,
position: string,
}
interface IStep {
element: string,
popover: IPopover
}
interface prop {
storageName: string,
steps: IStep[],
}
const props = withDefaults(defineProps<prop>(), {
storageName: 'driver',
steps:()=>[]
})
onMounted(() => {
let flag = localStorage.getItem(props.storageName);
if (!flag) {
showTips();
}
});
function showTips() {
const driver = new Driver({
prevBtnText: "上一步",
nextBtnText: "下一步",
doneBtnText: "我知道了",
closeBtnText: "關(guān)閉",
onReset: (ele: any) => {
localStorage.setItem(props.storageName, JSON.stringify({ firstVisit: false }));
},
});
driver.defineSteps(props.steps);
driver.start();
}
</script>
頁(yè)面使用
- 導(dǎo)入組件
- 需要傳頁(yè)面名稱storageName用于判斷用戶是否第一次進(jìn)入該頁(yè)面
- steps這個(gè)頁(yè)面里面需要引導(dǎo)的內(nèi)容列表
<!--
* @Description: 需要引導(dǎo)的頁(yè)面
* @LastEditTime: 2022-08-19 11:41:55
-->
<template>
<div class="test-guide">
<h1>測(cè)試driver.js</h1>
<el-button id="first-ele" type="primary">首頁(yè)</el-button>
<el-button id="second-intro" type="warning">幫助</el-button>
<el-button id="third-des" type="primary">聯(lián)系我們</el-button>
</div>
<Driver storageName='yingdaoye' :steps="steps"></Driver>
</template>
<script lang="ts" setup>
import Driver from '@/components/driver/index.vue'
const steps = [
{
element: "#first-ele",
popover: {
title: "這是本站首頁(yè)",
description: "本站首頁(yè)是一些展示性的信息",
position: "bottom",
},
},
{
element: "#second-intro",
popover: {
title: "這是幫助",
description: "點(diǎn)此處可獲取一些本站的相關(guān)說(shuō)明",
position: "top",
},
},
{
element: "#third-des",
popover: {
title: "聯(lián)系我們",
description: "點(diǎn)擊這里可獲取我們的相關(guān)信息",
position: "right",
},
},
];
</script>
<style lang="scss" scoped>
</style>
因?yàn)轫?xiàng)目中使用時(shí)沒(méi)有其他的要求 夠用就行,后期如果有其他的要求可以再修改,嘿嘿
到此這篇關(guān)于vue3項(xiàng)目新用戶引導(dǎo)組件(driver.js)的文章就介紹到這了,更多相關(guān)vue3 driver.js內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于vue+face-api.js實(shí)現(xiàn)前端人臉識(shí)別功能
基于face-api.js要實(shí)現(xiàn)人臉識(shí)別功能,首先要將自己需要的模型文件下載保存在靜態(tài)目錄下,可以通過(guò)cdn的方式在index.html中引入face-api.js,本文給大家介紹vue+face-api.js實(shí)現(xiàn)前端人臉識(shí)別功能,感興趣的朋友一起看看吧2023-12-12
關(guān)于VUE點(diǎn)擊父組件按鈕跳轉(zhuǎn)到子組件的問(wèn)題及解決方案
本文主要介紹了在Vue框架中,如何通過(guò)父組件的點(diǎn)擊事件打開(kāi)子組件中的彈窗并展示表格內(nèi)容,主要步驟包括在父組件中定義數(shù)據(jù)屬性,創(chuàng)建并定義子組件的彈窗和表格內(nèi)容,通過(guò)props屬性和自定義事件實(shí)現(xiàn)父子組件間的數(shù)據(jù)傳遞和方法調(diào)用2024-10-10
vue3?setup語(yǔ)法糖下父組件如何調(diào)用子組件
這篇文章主要介紹了vue3?setup語(yǔ)法糖下父組件如何調(diào)用子組件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
針對(duì)Vue路由history模式下Nginx后臺(tái)配置操作
這篇文章主要介紹了針對(duì)Vue路由history模式下Nginx后臺(tái)配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
vue項(xiàng)目中Eslint校驗(yàn)代碼報(bào)錯(cuò)的解決方案
這篇文章主要介紹了vue項(xiàng)目中Eslint校驗(yàn)代碼報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
vue如何使用mapbox對(duì)當(dāng)前行政區(qū)劃進(jìn)行反選遮罩
這篇文章主要介紹了vue如何使用mapbox對(duì)當(dāng)前行政區(qū)劃進(jìn)行反選遮罩問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10

