反应键处理器qq
反应组件处理键盘事件(例如 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 |
|| ||