Skip to content

RFC: @react-three/eslint-plugin rules #2701

@CodyJasonBennett

Description

@CodyJasonBennett

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. feat(eslint-plugin): add no-new-in-loop and no-clone-in-loop rules #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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions