React自定义钩子useMousePosition的鼠标位置值是从哪里获取的?
这段代码的鼠标位置是从浏览器原生的mousemove事件对象中获取的,具体逻辑可以拆成3部分看:
- 首先在
useLayoutEffect钩子中,给全局window对象绑定了mousemove事件监听,只要用户在页面中移动鼠标,浏览器就会触发这个事件,同时自动生成一个包含当前鼠标坐标信息的MouseEvent对象,传给绑定的回调函数setPosition。 setPosition的入参({ x, y })用了对象解构语法,直接从传入的MouseEvent对象里提取了原生自带的x、y属性,这两个属性分别对应鼠标当前相对于浏览器视口左上角的水平、垂直像素坐标。- 拿到坐标值后会更新内部的
x、y状态,最终返回给调用这个自定义Hook的组件使用。
内容的提问来源于stack exchange,提问作者NTring
相关产品推荐
相关产品推荐

