Skip to content

Files

40 lines (32 loc) Β· 1.12 KB

useMouse.md

File metadata and controls

40 lines (32 loc) Β· 1.12 KB

useMouse and useMouseHovered

Vue sensor hooks that re-render on mouse position changes. useMouse simply tracks mouse position; useMouseHovered allows you to specify extra options:

  • bound β€” to bind mouse coordinates within the element
  • whenHovered β€” whether to attach mousemove event handler only when user hovers over the element

Usage

import {useMouse, useRef} from 'vue-next-use';

const Demo = {
  setup(){
      const ref = useRef(null);
      // {docX, docY, posX, posY, elX, elY, elW, elH}
      const state = useMouse(ref);

      return () => {
          const {docX, docY, posX, posY, elX, elY, elW, elH} = state.value;
          return (
              <div ref={ref}>
                  <div>Mouse position in document - x:{docX} y:{docY}</div>
                  <div>Mouse position in element - x:{elX} y:{elY}</div>
                  <div>Element position- x:{posX} y:{posY}</div>
                  <div>Element dimensions - {elW}x{elH}</div>
              </div>
          );
      };
  }
};

Reference

useMouse(ref);
useMouseHovered(ref, {bound: false, whenHovered: false});