vue实现新手引导
Vue 实现新手引导的方法
使用第三方库 driver.js
Driver.js 是一个轻量级的新手引导库,适合在 Vue 项目中快速集成。
安装 driver.js:
npm install driver.js
在 Vue 组件中使用:
import Driver from 'driver.js';
import 'driver.js/dist/driver.min.css';
export default {
mounted() {
const driver = new Driver();
driver.highlight({
element: '#step1',
popover: {
title: '第一步',
description: '这里是第一步的说明',
}
});
}
}
自定义实现新手引导
如果不想使用第三方库,可以通过 Vue 的自定义指令和动态组件实现。
定义引导步骤数据:
data() {
return {
steps: [
{ target: '#step1', title: '第一步', content: '第一步说明' },
{ target: '#step2', title: '第二步', content: '第二步说明' }
],
currentStep: 0
}
}
创建引导遮罩组件:
<template>
<div class="guide-mask" v-if="show">
<div class="highlight-box" :style="highlightStyle"></div>
<div class="guide-content">
<h3>{{ currentStep.title }}</h3>
<p>{{ currentStep.content }}</p>
<button @click="next">下一步</button>
</div>
</div>
</template>
使用 Vue Tour 库
Vue Tour 是专门为 Vue 设计的导览插件。
安装:
npm install vue-tour
在 main.js 中引入:
import VueTour from 'vue-tour'
import 'vue-tour/dist/vue-tour.css'
Vue.use(VueTour)
在组件中使用:
steps: [
{
target: '#v-step-1',
content: '第一步的说明'
}
]
注意事项
确保引导元素在 DOM 中存在后再初始化引导。
对于动态渲染的内容,使用 $nextTick 确保元素加载完成:
this.$nextTick(() => {
this.driver.start()
})
添加引导触发条件,避免每次进入页面都显示:

if (!localStorage.getItem('tourShown')) {
startTour()
localStorage.setItem('tourShown', 'true')
}






