移动端点击延迟怎么解决?React里加了fastclick还是有卡顿
我在做移动端 React 项目时,发现按钮点击后有明显延迟,大概300ms左右。查资料说是因为浏览器要判断是不是双击缩放,所以加了 fastclick 库,但效果不明显,有些地方甚至更卡了。
下面是我现在写的组件,就是个简单的按钮,绑定了 onClick。有没有更好的处理方式?比如用 touchstart 代替?但又怕影响可访问性……
const MyButton = () => {
const handleClick = () => {
console.log('clicked');
};
return (
<button onClick={handleClick} style={{ padding: '12px' }}>
点我
</button>
);
};
复制这个代码:
这样处理后,基本能解决300ms延迟问题,而且保留了键盘交互支持。记得测试下各种场景,特别是安卓机,有时候表现会不一样。
唉,移动端兼容真是个体力活,不过这个方案应该够用了。