前言
社区有很多关于新手引导的组件,比如优秀的 driver.js、shepherd、introjs ...
但这些组件主要解决的还是静态页面
的引导,适用于需要引导的功能都在静态页面上呈现出来的场景,如下所示:
但在我们业务开发当中,有很多动态组件的场景,就像我们玩游戏时的新手引导一样
但在web端,似乎还没类似的组件
在这种背景下 web-guide
🔥🔥🔥 孕育而生
项目地址:web-guide 要个start不过分吧😁
文档地址:文档
技术实现
新手引导组件是一个通用性组件,如果我们使用 vue
或 react
进行封装的话,那只能适用于vue
或 react
项目。
为了让web-guide
更通用,最后采取 svelte进行开发,最后打包成原生JS
效果
如何使用
1. 安装
sh
npm i @liuyahui666/web-guide -S
或者
sh
yarn add @liuyahui666/web-guide -S
2. 使用
js
import webGuide,{ defineConfig } from "@liuyahui666/web-guide";
import "@liuyahui666/web-guide/index.css"
new webGuide(defineConfig({
target: document.querySelector("#app")!, // 页面的跟元素
props: {
settings: {
immediate: true, // 是否立即触发引导
logo:'', // 引导页的图片地址
stepArr: [ // 每一步的配置
{
element: () => document.querySelector("#addDiv")!, // 在哪个元素上触发
trigger: "click", // 如何触发 immediate为false时可忽略
popover: {
title:"请点击div", // 标题
description:"点击div有惊喜哦", // 详情
},
},
...
],
},
},
}));
使用 defineConfig
可获取完整的类型提示
web-guide
组件实现细节
打包
整体使用的是 svelte
框架进行开发,使用 vite
进行项目搭建。如果想打包成原生JS的话,只需要在 vite.config.ts
的build
选项进行配置即可
ts
build: {
cssCodeSplit: true,
lib: {
entry: resolve(__dirname, "src/lib/index.ts"),
name: "web-guide",
fileName: (format) => `index.${format}.js`,
},
},
具体细节可参考源码
文档搭建
使用的是 vitepress
最后
如果在使用用遇到任何问题,欢迎 issues 😘