@banzai-inc/react-key-handler

中文文档
1.2.0-beta.6发布于 2024/02/15MITESM + CJS近 30 天下载 1.7万

处理键盘事件的反应组件

中文使用文档
文档目录15 节
  1. Banzai 的更改 :
  2. 目录
  3. 安装
  4. 使用量
  5. 高序组件
  6. 构成部分
  7. 窗体密钥处理
  8. 关键事件名称
  9. keyValue , (中文(简体) ), code 财务报告和审定财务报表 keyCode
  10. 发展
  11. 设置
  12. 开始
  13. 测试
  14. 捐款
  15. 许可证

反应键处理器qq

npm version License Build Status

反应组件处理键盘事件(例如 keyup, (中文(简体) ), keydown 打开 keypress) (中文(简体) ).

Banzai 的更改 :

更新了对等依赖, 支持反应 17, 因为我们已经在反应 17 上运行了一段时间 . 这个软件包最终需要被一些不同的东西所取代,作为我们升级的一部分.

目录

安装

$ npm install react-key-handler --save

使用量

你用得着 react-key-handler 库,分两种花式:

高序组件

这个库包括两个相近的更高级组件,但有一个不同的puprose:

上级单位目的
keyHandler处理密钥更改
keyToggleHandler处理密钥切换

两者都具有相同的API,并将给定的组件装饰有: keyValue, (中文(简体) ), code 财务报告和审定财务报表 keyCode 属性.

内部 KeyHandler 使用组件,以便充分理解 检查出来 执行情况。 。 。 .

import React from 'react';
import { keyHandler, KEYPRESS } from 'react-key-handler';

function Demo({ keyValue }) {
  return (
    <div>
      {keyValue === 's' && (
        <ol>
          <li>hello</li>
          <li>world</li>
        </ol>
      )}
    </div>
  );
}

export default keyHandler({ keyEventName: KEYPRESS, keyValue: 's' })(Demo);

道具类型 KeyHandler 构成部分是:

名称类型需求默认
密钥事件Name字符串没有'keyup''keydown', (中文(简体) ), 'keypress' 或者说 'keyup'
键值字符串对 * 联合国任何给定 键盘Event.key
代码字符串对 * 联合国任何给定 键盘Event.code
密钥代码编号对 * 联合国任何给定 键盘Event.keyCode

* 联合国 你应该通过至少一个这样的道具.

页:1 说明 键代码经常是浏览器特定,因此被设定为 已贬值,见 详细信息 MDN。 。 。 .

实例

构成部分

import React from 'react';
import KeyHandler, { KEYPRESS } from 'react-key-handler';

export default class Demo extends React.Component {
  state = { showMenu: false };

  render() {
    const { showMenu } = this.state;

    return (
      <React.Fragment>
        <KeyHandler
          keyEventName={KEYPRESS}
          keyValue="s"
          onKeyHandle={this.toggleMenu}
        />

        {showMenu && (
          <ol>
            <li>hello</li>
            <li>world</li>
          </ol>
        )}
      </React.Fragment>
    );
  },

  toggleMenu = (event) => {
    event.preventDefault();

    this.setState({ showMenu: !this.state.showMenu });
  };
}

道具类型 KeyHandler 构成部分是:

名称类型需求默认
密钥事件Name字符串没有'keyup''keydown', (中文(简体) ), 'keypress' 或者说 'keyup'
键值字符串对 * 联合国任何给定 键盘Event.key
代码字符串对 * 联合国任何给定 键盘Event.code
密钥代码编号对 * 联合国任何给定 键盘Event.keyCode
关键汉字函数对处理键时调用的函数

* 联合国 你应该通过至少一个这样的道具.

页:1 说明 键代码经常是浏览器特定,因此被设定为 已贬值,见 详细信息 MDN。 。 。 .

示例

窗体密钥处理

此库不处理窗体元素的关键事件, 如 <input /> 财务报告和审定财务报表 <textarea />。 。 。 .

反应做得很好 支持这些已经通过 键盘事件。 。 。 .

实例

关键事件名称

TODO:解释不同关键事件的差异.

keyValue, (中文(简体) ), code 财务报告和审定财务报表 keyCode

现有的三项主要活动是:

  • keyValue 这符合真正的价值。 这是按键的值 在考虑修改键状态的同时 例如 shiftKey 以及键盘定位/显示
  • code 这与键盘上的物理键(相对于 通过按下键生成的字符). 换句话说,这个财产 返回未被键盘布局或状态所改变的值 修改键。 值是按键特有的字符串,例如“ 数字0 ”
  • keyCode 这类似于代码,但数字和 已贬值。 。 。 .

我们建议您使用新的Web标准 键盘Event.key 或 键盘Event.code 以被掠夺者发誓 键盘Event.keyCode。 。 。 .

请注意 反应 key 是一个保留的财产,因此我们使用 keyValue 引用时 页:1 key 属性.

浏览器支持 :

不需要担心浏览器的支持,因为我们内部正常 已贬值的 HTML5 keyValue 价值和从遗产中翻译 keyCode 数值, 类似于反应如何为他们 SyntheticKeyboardEvent。 。 。 .

详情:

W3C 工作草案。 。 。 .

发展

设置

$ git clone <this repo>
$ cd react-key-handler
$ npm install

开始

要启动服务器 :

$ npm demo

这将启动一个开发服务器, 它会在您更改文件时自动重建演示应用程序, 并支持热模块替换以快速开发 :

$ open http://localhost:1234

测试

进行所有测试:

$ npm test

或者您可以单独运行 Linters, 单位测试和检查类型错误 :

$ npm run test:lint
$ npm run test:unit
$ npm run test:flow

捐款

GitHub上欢迎错误报告和拉出请求. 这个项目的目的是: 安全、欢迎合作的空间,预期捐助者将遵守 页:1 《促进者公约》 行为守则.

许可证

 _________________
< The MIT License >
 -----------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

版本与发布记录

@banzai-inc/react-key-handler 共发布 4 个版本,首次发布于 2023/05/19;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.0-beta.6latest2024/02/152 年前
1.2.0-beta.52024/02/152 年前
1.2.0-beta.42024/02/142 年前
1.2.0-beta.32023/05/193 年前

关于 @banzai-inc/react-key-handler 的常见问题

@banzai-inc/react-key-handler 是什么?

处理键盘事件的反应组件

如何安装 @banzai-inc/react-key-handler?

在项目目录运行 npm install @banzai-inc/react-key-handler,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^16.2.0-0 || ^17.0.0 || ^18.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@banzai-inc/react-key-handler 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/banzai-inc__react-key-handler 是否存在。

@banzai-inc/react-key-handler 支持 ESM 还是 CommonJS?

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

@banzai-inc/react-key-handler 可以商用吗?

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

@banzai-inc/react-key-handler 的下载量有多少?

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

@banzai-inc/react-key-handler 还在维护吗?

最新版本 1.2.0-beta.6 发布于 2024/02/15(2 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/05/19。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。