onClick vs onTouchTap,我应该使用什么?
onClick vs onTouchTap, what should I use?
我应该在 onClick 和 onTouchTap 之间使用什么?为什么?
onTouchTap 有时似乎太容易触发(例如滚动时)。我错了吗 ?
一个或另一个是否存在任何浏览器问题?
看起来 onTouchTap
是 react-tap-event-plugin 提供的一种方法来克服 iOS 上的 onClick
处理程序发生的 300 毫秒延迟。如果您不关心 iOS 浏览器上的 300 毫秒延迟,则使用常规 onClick
处理程序可能有意义,以避免此插件文档中提到的可能出现的幻影点击。
虽然 可能反映了撰写本文时的最佳行动方案,但在 2017 年 8 月中旬之后访问此主题的其他人应该警惕对此有一些更新。根据您需要支持的浏览器和应用程序中的依赖项,onTouchTap
可能不再与您的需求相关。
从 CHANGELOG
for Material-UI v0.19.0, the react-tap-event-plugin
dependency has been removed from versions 0.19.0+ of Material-UI. As noted here 可以看出,这样做是为了支持 React v16 (a.k.a., "Fiber" ).此外,从那时起,移动设备的浏览器有了显着改进,这意味着幻影点击效果(至少在许多情况下)不再明显或不存在。
总体而言,评估您的堆栈。如果您只考虑使用常绿浏览器进行构建,那么已经升级到 React v16 并且处于 recent version of Material-UI, use of onTouchTap
instead of onClick
is likely not for you. Additionally, Facebook (in particular, its React team) does not plan on supporting tap events 并且这似乎也不会成为未来主流浏览器的长期问题;在这种情况下,如果您的应用程序有能力升级其基础架构(即,核心依赖项)它应该。
我应该在 onClick 和 onTouchTap 之间使用什么?为什么? onTouchTap 有时似乎太容易触发(例如滚动时)。我错了吗 ? 一个或另一个是否存在任何浏览器问题?
看起来 onTouchTap
是 react-tap-event-plugin 提供的一种方法来克服 iOS 上的 onClick
处理程序发生的 300 毫秒延迟。如果您不关心 iOS 浏览器上的 300 毫秒延迟,则使用常规 onClick
处理程序可能有意义,以避免此插件文档中提到的可能出现的幻影点击。
虽然 onTouchTap
可能不再与您的需求相关。
从 CHANGELOG
for Material-UI v0.19.0, the react-tap-event-plugin
dependency has been removed from versions 0.19.0+ of Material-UI. As noted here 可以看出,这样做是为了支持 React v16 (a.k.a., "Fiber" ).此外,从那时起,移动设备的浏览器有了显着改进,这意味着幻影点击效果(至少在许多情况下)不再明显或不存在。
总体而言,评估您的堆栈。如果您只考虑使用常绿浏览器进行构建,那么已经升级到 React v16 并且处于 recent version of Material-UI, use of onTouchTap
instead of onClick
is likely not for you. Additionally, Facebook (in particular, its React team) does not plan on supporting tap events 并且这似乎也不会成为未来主流浏览器的长期问题;在这种情况下,如果您的应用程序有能力升级其基础架构(即,核心依赖项)它应该。