vue 프로젝트에서 사용자 안내 기능을 어떻게 구현하나요? 다음 글에서는 Intro.js를 사용하여 vue 프로젝트에서 사용자 안내 기능을 구현하는 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다!
시스템이 새 버전을 출시하거나 새 기능을 출시한 후 사용자가 새 기능을 빠르게 이해할 수 있도록 일반적으로 일부 사용자 안내 인터페이스를 추가해야 합니다.
사용자 지침을 구현하는 데 사용되는 일반적인 플러그인에는 Intro.js, Shepherd, vue-tour, Driver.js 등이 있습니다. 각 플러그인에는 고유한 장단점이 있습니다. 이 글에서는 Intro.js
를 사용하여 vue 프로젝트를 기반으로 사용자 지침을 구현하는 방법을 소개합니다. [학습 동영상 공유: vue 동영상 튜토리얼Intro.js
实现用户指引。【学习视频分享:vue视频教程、web前端视频】
Intro.js 是一个开源的 Javascript / CSS 库,用于添加分步介绍或提示。具备如下优点:
Intro.js可以实现tour(显式指引)和hint(隐式指引)两种用户指引形式(注:这两种译法是笔者自己取的,仅用于区分!!!)。
其中,显示指引更倾向于是对功能的简要介绍,其效果如下图所示,通常是由遮罩层、选中的页面元素、指引信息弹窗等共同组成。
隐式指引,则像是一种操作式的引导,鼓励用户参与其中,边学边用,其默认效果如下图所示,提示用户点击指定元素,随后会显示相应的提示信息或进入下一步操作等。
这两种形式的用法核心在于选择元素并预设指引信息。因此,本文将主要介绍tour的用法,hint的使用方法可以触类旁通,参考tour的用法及 官方文档中的demo 后可以轻松上手,便不在此赘述。
Intro.js官方提供了很多Tour API,这里仅针对最常用的基础API做介绍,完整的API介绍可查看官方API文档。
用于创建一个 introJs
的对象,可选参数 targetElm
, 웹 프론트엔드 비디오
introJs
의 객체, 선택적 매개변수 targetElm
를 생성하는 데 사용됩니다. 소개를 시작하는 특정 요소를 참조하는 문자열 유형입니다(예: "#intro-farm"). 🎜🎜🎜introJs.start()🎜🎜🎜정의된 요소 소개를 시작하면 사용자 안내가 시작됩니다. 🎜생성된 introJs
객체에 대한 옵션 세트를 설정합니다. 매개변수 옵션은 버튼 표시 텍스트, 마스크 레이어 투명도, 프롬프트 텍스트 등 가이드의 모든 정보를 포함하는 개체 유형입니다. introJs
对象设置一组选项。参数 options 是一个对象类型,包括了指引中的所有信息,如:按钮显示文字、遮罩层透明度、提示文本等。
常用option如下:
上述部分字段对应的内容如下图所示,更多完整options可查看 官方文档。
其中,doneLable 只会在最后一步指引中出现,会占据 nextLabel 的位置,因此,如果 hideNext 置为true时,最后一步中 nextLabel 和 doneLabel 均会被隐藏。
helperElementPadding 是图中高亮区域中白色边框部分(为区分该字段对应区域,这里特意给所选元素一个粉色的背景色)。
Intro.js没有任何依赖项,只需要安装intro.js即可。
npm install intro.js --save
yarn add intro.js
git clone https://github.com/usablica/intro.js.git
如果用户指引内容比较简单并且固定,可以直接将属性写在html标签中,并调用introJs().start()。主要属性如下:
<template> <div data-title="Welcome!" data-intro="Hello World!"> hello! </div> </template> <script> import introJs from "intro.js"; // 引入intro.js import "intro.js/introjs.css"; // intro.js的基础样式文件 export default { mounted () { this.$nextTick(() => { // Intro.js扫描页面并找到所有具有“data intro”属性的元素 introJs().start(); }) } } </script>
当页面需要配置较多步骤或有特殊化配置时,可以采用第二种种方式。需要在JSON中自定义配置,即通过使用API -- introJs.setOptions(options)。
1、封装introConfig.js
实际使用过程中,可能会有多个场景需要做用户指引。为避免重复多次配置一些基础的选项内容,可以将基础项封装到一个公共的文件introConfig.js
中,文件内容如下:
// src/utils/introConfig.js import introJs from "intro.js"; import "intro.js/introjs.css"; // intro.js的基础样式文件 import "intro.js/themes/introjs-modern.css"; // 主题样式文件 const intro = introJs(); intro.setOptions({ nextLabel: "下一步", // 下一个的按钮文字 prevLabel: "上一步", // 上一个按钮文字 skipLabel: "跳过", // 跳过指引的按钮文字 doneLabel: "完成", // 完成按钮的文字 hidePrev: false, // 是否在第一步中隐藏“上一步”按钮;不隐藏,将呈现为一个禁用的按钮 hideNext: false, // 是否在最后一步中隐藏“下一步”按钮(同时会隐藏完成按钮);不隐藏,将呈现为一个禁用的按钮 exitOnEsc: false, // 点击键盘的ESC按钮是否退出指引 exitOnOverlayClick: false, // 点击遮罩层时是否退出介绍 showStepNumbers: false, // 是否显示步骤编号 disableInteraction: true, // 是否禁用高亮显示框内元素的交互 showBullets: true, // 是否显示面板的指示点 overlayOpacity: 0.7, // 遮罩层的透明度 0-1之间 helperElementPadding: 10, // 选中的指引元素周围的填充距离 }); export default intro;
另外,Intro.js官方总共提供了6个不同的主题:Classic、Royal、Nassim、Nazanin、Dark、Modern,各主题的显示效果可在 官网查看。默认使用的是Classic,如果想使用其他主题,需引入 “intro.js/themes” 文件下对应的css文件,如下图。这里我用的是 “introjs-modern.css”。
2、引入配置文件
在需要添加用户指引的文件中引入introConfig.js
文件:
import intro from "@/utils/introConfig.js";
3、配置指引步骤并启动
在具体的使用文件中,通过 setOptions 的 steps
属性配置指引步骤,它是数组类型,每一项都对应一个指引步骤,其中的字段含义如下:
element
:定位到相应的元素位置,如果不设置,则默认展示在屏幕中央
title
methods: { guide() { intro.setOptions({ steps: [ { element: document.querySelector('#step1'), // 定位到相应的元素位置,如果不设置element,则默认展示在屏幕中央 title: 'Welcome', // 标题 intro: 'Hello World! ?' // 内容 }, { element: document.querySelector('#step2'), intro: '有关如何配置/自定义该项目的指南和方法,请查看vue-cli文档。' }, { element: document.querySelector('#step3'), intro: '已安装的cli插件' }, { element: document.querySelector('#step4'), intro: '基本链接' }, { element: document.querySelector('#step5'), intro: '生态系统' }, { title: "开始体验吧!", intro: `<img src="interesting.GIF" alt="" style="max-width:90%" class="specialImg"/>` }, ] }); this.$nextTick(() => { intro.start(); }) } }, mounted() { this.$nextTick(() => { this.guide(); }) }
introConfig.js
를 캡슐화하세요🎜🎜실제 사용 중에 사용자 지침이 필요한 여러 시나리오가 있을 수 있습니다. 일부 기본 옵션을 여러 번 구성하는 것을 피하기 위해 기본 항목을 공개 파일 introConfig.js
로 캡슐화할 수 있습니다. 파일 내용은 다음과 같습니다. 🎜rrreee🎜또한 Intro.js 공식적으로는 Classic, Royal, Nassim, Nazanin, Dark, Modern 총 6가지 테마를 제공합니다. 각 테마의 표시 효과는 공식 웹사이트. 기본값은 Classic입니다. 다른 테마를 사용하려면 아래와 같이 "intro.js/themes" 파일 아래에 해당 CSS 파일을 도입해야 합니다. 여기서는 "introjs-modern.css"를 사용합니다. 🎜🎜🎜🎜 2. 구성 파일을 추가합니다. 🎜🎜사용자 안내를 추가해야 하는 파일에 introConfig.js
파일을 추가합니다. 🎜rrreee🎜3 안내 단계를 구성하고 🎜🎜특정 사용 파일에서 시작합니다. , setOptions 전달 steps
속성은 안내 단계를 구성합니다. 각 항목은 안내 단계에 해당합니다. 🎜🎜요소</code >: 해당 요소 위치 찾기, 설정하지 않을 경우 기본적으로 화면 중앙에 표시됩니다🎜🎜<code>제목
: 안내 팝업창의 제목🎜intro
:指引弹窗的文本内容,可插入html内容
示例如下:
methods: { guide() { intro.setOptions({ steps: [ { element: document.querySelector('#step1'), // 定位到相应的元素位置,如果不设置element,则默认展示在屏幕中央 title: 'Welcome', // 标题 intro: 'Hello World! ?' // 内容 }, { element: document.querySelector('#step2'), intro: '有关如何配置/自定义该项目的指南和方法,请查看vue-cli文档。' }, { element: document.querySelector('#step3'), intro: '已安装的cli插件' }, { element: document.querySelector('#step4'), intro: '基本链接' }, { element: document.querySelector('#step5'), intro: '生态系统' }, { title: "开始体验吧!", intro: `<img src="interesting.GIF" alt="" style="max-width:90%" class="specialImg"/>` }, ] }); this.$nextTick(() => { intro.start(); }) } }, mounted() { this.$nextTick(() => { this.guide(); }) }
上述代码中,guide() 方法里配置了指引步骤和开始指引;并在 mounted 生命周期中调用 guide() 方法以展示指引内容。需要注意的是,为确保指引信息在原始页面渲染完毕后调用,需要在 $nextTick()
中调用 guide() 方法。
4、Demo效果
本demo仅用作讲解如何使用Intro.js,并未修改原始样式,比较简陋,还请包涵,实际使用时需要根据实际需要自定义样式。点击查看demo代码,效果如下图:
必须在原始页面渲染完毕后再加载intro.js
如果原始界面没有完全渲染完毕,可能存在intro.js无法找到指定元素的情况,可通过this.$nextTick()解决
实际使用中可能存在一些复杂的交互场景,可借助一些API来解决
introJs.onexit(providedCallback):退出用户指引时触发 introJs.onchange(providedCallback):步骤改变时触发 introJs.onbeforechange(providedCallback):步骤改变前触发 introJs.onafterchange(providedCallback):步骤改变后触发
如果现有主题无法满足需求,可以通过设置tooltipClass来自定义样式
위 내용은 Intro.js를 사용하여 vue 프로젝트에서 사용자 안내 기능을 구현하는 방법에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!