@fluentui-contrib/react-keytips

中文文档
0.4.4发布于 2026/06/03MITTypeScriptESM + CJS近 30 天下载 8843

安装

中文使用文档
文档目录6 节
  1. 安装
  2. 最佳做法
  3. 执行
  4. 别
  5. 使用量
  6. 手动发送密钥事件

@ fluentui-contrib/ react- keytips (英语)

安装

npm install @fluentui-contrib/react-keytips

或者说

yarn add @fluentui-contrib/react-keytips

一个键提示是一个在UI组件附近显示的小弹出,表示一个可以用来导航并触发该组件的键序列. 不同于键盘快捷键, Keytips 引导用户通过一系列密钥来穿越UI的分级级别.

从技术角度看,"键盘"(Keytip)是一个围绕"工具"(Toltip)组件的包装.

要启用密钥提示,请包括 Keytips 组件在应用程序的根层。 使用 useKeytipRef 勾勾将键提示附加到特定的目标组件上.

当用户输入一组特定的密钥时会出现密钥提示. 输入序列是 Alt-Meta 在窗口和 Option-Control 在macOS上. 用户可以通过 startSequence 属性.

returnSequence 应当用于导航回溯到之前的密钥提示级别(Esc (默认情况下). 按键 Esc (或不同的热键传递给 returnSequence)将关闭密钥提示模式,并仅在它是根级密钥提示(一个没有父关并被先显示)的情况下将其删除.

最佳做法

执行

  • 只要他们的兄弟姐妹没有同样的序列,键盘序列就可以被复制.

别

  • 别多加一个 Keytips 每个应用程序组件.
  • 不要将密钥提示附加到可以使你的页面滚动的组件上 。 键提示模式自动退出滚动.

使用量

import * as React from 'react';
import { Keytips, useKeytipRef } from '@fluentui-contrib/react-keytips';
import { Button } from '@fluentui/react-components';

export const App = () => {
  const onExecute = (_, ({ targetElement })) => {
    targetElement.click();
  };

  const keytipRefA = useKeytipRef({ keySequences: ['a'], content: 'A', onExecute });
  const keytipRefB = useKeytipRef({ keySequences: ['b'], content: 'B', onExecute });
  const keytipRefC = useKeytipRef({ keySequences: ['c'], content: 'C', onExecute });

  return (
    <>
      {/* Keytips must be added once under the root-most FluentProvider of the app */}
      <Keytips />
      <Button ref={keytipRefA}>Button A</Button>
      <Button ref={keytipRefB}>Button B</Button>
      <Button ref={keytipRefC}>Button C</Button>
    </>
  );
};

手动发送密钥事件

在某些情况下,您可能想要手动触发按键提示事件 。 例如,您可能需要根据动作在程序上输入或退出密钥提示模式. 这个 使用 Keytips 管理器 钩子提供发送权限 方法,允许您手动发送密钥提示事件.

import * as React from 'react';
import { Button } from '@fluentui/react-components';
import { useKeytipsManager } from '@fluentui-contrib/react-keytips';

export const App = () => {
  const { enterKeytipMode } = useKeytipsManager();

  return (
    <>
      <Button onClick={enterKeytipMode}>Show Keytips</Button>
    </>
  );
};

Follow up on the [Storybook](https://microsoft.github.io/fluentui-contrib/react-keytips) for examples on how to use the components provided by this package.

版本与发布记录

@fluentui-contrib/react-keytips 共发布 18 个版本,首次发布于 2024/10/16;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.4.4latest2026/06/035 个月前
0.4.32026/03/038 个月前
0.4.22025/11/1811 个月前
0.4.12025/10/011.1 年前
0.4.02025/09/231.1 年前
0.3.32025/08/021.3 年前

关于 @fluentui-contrib/react-keytips 的常见问题

@fluentui-contrib/react-keytips 是什么?

安装

如何安装 @fluentui-contrib/react-keytips?

在项目目录运行 npm install @fluentui-contrib/react-keytips,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=16.8.0 <20.0.0)、react-dom(>=16.8.0 <20.0.0)、@types/react(>=16.8.0 <20.0.0)、@types/react-dom(>=16.8.0 <20.0.0)、@fluentui/react-components(>=9.70.0 <10.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fluentui-contrib/react-keytips 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fluentui-contrib/react-keytips 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@fluentui-contrib/react-keytips 可以商用吗?

@fluentui-contrib/react-keytips 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fluentui-contrib/react-keytips 的下载量有多少?

根据 npm 官方下载统计,@fluentui-contrib/react-keytips 在 2026/10/15 – 2026/11/13 这 30 天内被下载 8,843 次,日均约 295 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fluentui-contrib/react-keytips 还在维护吗?

最新版本 0.4.4 发布于 2026/06/03(5 个月前);至今共发布 18 个版本,其中过去 12 个月发布了 3 个;首次发布于 2024/10/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。