Files
kolaytercih/.agents/skills/vercel-react-best-practices/rules/advanced-init-once.md
bilalgursen ea85a053c5
All checks were successful
Deploy / deploy (push) Successful in 7m30s
feat: add new skills to skills-lock.json and update use-pixel-heat component
- Added new skills: find-skills, frontend-ui-engineering, and vercel-react-best-practices to skills-lock.json.
- Updated use-pixel-heat.ts to import both animate and AnimationPlaybackControls from motion for improved animation handling.
2026-08-08 16:08:54 +03:00

958 B

title, impact, impactDescription, tags
title impact impactDescription tags
Initialize App Once, Not Per Mount LOW-MEDIUM avoids duplicate init in development initialization, useEffect, app-startup, side-effects

Initialize App Once, Not Per Mount

Do not put app-wide initialization that must run once per app load inside useEffect([]) of a component. Components can remount and effects will re-run. Use a module-level guard or top-level init in the entry module instead.

Incorrect (runs twice in dev, re-runs on remount):

function Comp() {
  useEffect(() => {
    loadFromStorage()
    checkAuthToken()
  }, [])

  // ...
}

Correct (once per app load):

let didInit = false

function Comp() {
  useEffect(() => {
    if (didInit) return
    didInit = true
    loadFromStorage()
    checkAuthToken()
  }, [])

  // ...
}

Reference: Initializing the application