pmndrs/react-three-fiber

RFC: @react-three/eslint-plugin rules

Open

#2701 opened on Jan 10, 2023

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

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