pmndrs/react-three-fiber

RFC: @react-three/eslint-plugin rules

Open

#2,701 opened on Jan 10, 2023

View on GitHub
 (15 comments) (10 reactions) (0 assignees)TypeScript (1,464 forks)batch import
help wantedrequest for commentsv10

Repository metrics

Stars
 (25,748 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

Aligning with our docs for general performance pitfalls and API usage around context (use R3F hooks within Canvas):

  • no-clone-in-frame-loop: Prefer creating temporary objects in global space and copy rather than clone in hot paths. This should be restricted to three.js classes to avoid collisions. https://github.com/pmndrs/react-three-fiber/pull/2710
  • no-fast-state: Don't set state within loops or continuous events (startTransition can be used if you must, this can be disabled for specific polling cases)
  • prefer-useloader: Prefer useLoader for suspense and caching rather than calling Loader.load or Loader.loadAsync in an effect. This will de-dup resources on both the CPU and GPU and avoid later expensive runtime compilation.

Contributor guide