news 2026/10/15 18:56:02

如何快速掌握 smc.peering.tw:内置新手引导之旅完整拆解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何快速掌握 smc.peering.tw:内置新手引导之旅完整拆解

【免费下载链接】smc.peering.tw

A dashboard that shows the current status of submarine cables that connected Taiwan to the world

项目地址:https://gitcode.com/gh_mirrors/sm/smc.peering.tw
点击查看免费下载

smc.peering.tw 是一个展示台湾海底电缆(Submarine Cable)实时状态的交互地图看板,而它内置的「新手引导之旅」是帮助新手用户 3 分钟熟悉整站功能的最佳入口。本文完整拆解这个引导之旅的 11 个步骤、触发机制与底层实现,让你快速掌握这个海缆状态地图的每一处细节。

什么是内置新手引导之旅

对于第一次打开 smc.peering.tw 的用户,最直观的体验就是:

  1. 首次访问会弹出一个「重要提醒」窗口,说明数据来源与免责声明;
  2. 点击「我了解」后,新手引导自动开始,一步步高亮界面各区域并配上讲解气泡;
  3. 之后随时可以点击侧边栏的「?」帮助按钮重新启动引导。

这套引导基于 driver.js(一个轻量级产品引导库)实现,配合 zustand 状态管理和 react-i18next 多语言方案,覆盖英文与繁体中文两种界面语言。

11 步引导之旅:逐站拆解

引导之旅共有11 个站点(steps),每一步都锚定界面上一个真实的 UI 元素。以下是完整路线:

顺序引导站点讲解内容对应锚点
1对外连线状态计数器根据最新事件统计台湾对外路由的正常与受影响条数counter
2地图图例海缆颜色与符号的含义,可用不同蓝色区分海缆系统map-legend
3事件列表面板浏览进行中与历史事件,含持续天数、原因、预计维修时间incident-panel
4进行中 / 历史切换一键切换查看当前事件或历史纪录incident-mode-select
5海缆筛选器筛选地图只显示全部、仅正常或仅断线的海缆cable-filter
6语言切换在英文与繁体中文之间切换界面语言change-language
7时间轴视图查看海缆过去一年的可用率与断线历史timeline-dialog
8拓扑视图入口ISP 与海缆区段之间的依赖关系(点击下一步自动打开)topology-dialog
9拓扑图解读节点与连线按状态着色(正常、降級、中斷),一眼看出受影响 ISPtopology-graph
10关于页了解项目背景、数据来源与版本更新记录about-dialog
11引导教学入口提示你可以随时重新启动此引导tour-help

💡 注意第 8 步的小心思:点击「下一步」时会自动打开拓扑视图弹窗,等拓扑图渲染完成后才前进到第 9 步,保证引导节奏与页面状态同步。

引导之旅是如何实现的:3 个核心模块

模块一:TourController.tsx —— 引导引擎

整个引导之旅的「总导演」。核心逻辑包括:

  • 通过driver({ steps: [...] })定义 11 步引导,每步指定锚点元素、弹出方向与文案;
  • 全局设置showProgress: true(显示进度)、overlayOpacity: 0.75(半透明遮罩聚焦当前元素)、allowClose: true(可随时关闭);
  • 用waitForElement轮询等待动态渲染的元素(如拓扑图),避免引导"跑空";
  • 引导结束后清理状态,防止重复触发。

步骤定义的结构非常简洁:

steps: [ { element: '[data-tour="counter"]', popover: { title: t("tour.counter.title"), description: t("tour.counter.body"), side: "right", // ... }, }, // ...共 11 步 ]

模块二:tour.ts —— 全局状态桥

用 zustand 维护引导的三块状态:startTour(启动函数引用)、tourActive(是否正在进行)、topologyTourOpen(拓扑弹窗是否因引导而打开)。这样侧边栏的帮助按钮、移动端抽屉、引导控制器之间可以互相通信。

模块三:Intro.tsx —— 首次访问入口

首次访问的「重要提醒」弹窗是引导之旅的触发器:用户点击「我了解」后,会将 localStorage 中的tourAutoStartAllowed置为true,随后 TourController.tsx 检测到「允许自动开始 + 尚未引导过」两个条件同时满足,立即启动引导。

两个关键的 localStorage 键决定了引导行为:

键名作用
tourAutoStartAllowed是否允许首次访问自动开始引导(点过「我了解」即为 true)
tourTriggered引导是否已触发过(保证自动引导只发生一次)

界面锚点:data-tour 是怎么工作的

引导能精准"指向"某个按钮或面板,靠的是散落在各组件上的data-tour属性。例如:

  • 连线状态计数器:OutageCounter.tsx
  • 地图图例:MapLegend.tsx
  • 事件面板 / 模式切换 / 语言按钮 / 帮助按钮:Sidebar.tsx
  • 海缆筛选器:App.tsx
  • 拓扑图:Topology.tsx

data-tour只是普通 HTML 属性,对界面行为零侵入,引导库通过[data-tour="xxx"]选择器即可定位并高亮任意元素。

多语言引导文案在哪里

所有引导文案集中在 i18n 语言包的tour节点下:

  • 繁体中文:zh-tw.json
  • 英文:en.json

按钮文字(下一步 / 上一步 / 完成)和每一步的标题、正文全部走翻译函数,因此切换语言后引导会实时切换语言——这也是第 6 步"语言切换"引导站点的由来。

如何自己启动引导之旅:2 种方式

  1. 首次访问自动启动:打开站点 → 语言选择后出现「重要提醒」→ 点击「我了解」→ 引导自动开始(全程约 1~2 分钟);
  2. 随时手动重启:点击侧边栏(移动端为底部抽屉右上角)的「?」帮助按钮即可重新开始完整引导,对应组件为 Sidebar.tsx。

引导过程中可以随时关闭遮罩跳过;移动端抽屉会自动展开到全屏并同步切换到对应标签页,保证引导内容可见。

写在最后

smc.peering.tw 用driver.js +>

【免费下载链接】smc.peering.tw

A dashboard that shows the current status of submarine cables that connected Taiwan to the world

项目地址:https://gitcode.com/gh_mirrors/sm/smc.peering.tw
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 18:55:10

PCF8591 DA转换实战:从控制字节到精度负载避坑指南

简介:这份资源围绕PCF8591芯片的DA转换展开,面向正在学习单片机与嵌入式外设驱动的初学者及课程设计者,帮助解决数字信号转模拟电压的编程与调试问题。压缩包共15个文件,约31KB,包含C源码、Keil工程文件(uv…

作者头像 李华
网站建设 2026/10/15 18:51:35

前端刷题网站怎么选?从手写代码到工程思维的实战训练指南

我一直觉得,前端这行当,嘴上功夫和手上功夫是两码事。你可以在面试的时候把闭包、事件循环、虚拟 DOM 讲得头头是道,但真给你一个页面,让你在半小时内把布局还原、把交互补全、把性能瓶颈揪出来,很多人当场就露馅了。原…

作者头像 李华
网站建设 2026/10/15 18:48:29

NT3H1X01 NFC芯片库开发实战:从NDEF读写到能量收集

简介:面向SmartEverything与Arduino开发者的近场通信芯片库,专为NXP NT3H1101(NTAG I2C)设计,采用C编写。该芯片支持NFC Forum非接触式接口与I2C接触式接口,是NTAG系列首款双接口产品,库封装了底…

作者头像 李华