Skip to content

Navigation Menu

Sign in
Sign up

React Import Best Practices

Harald Walker edited this page Jan 14, 2026 · 1 revision

βœ… DO (Modern Pattern)

import React, { useState, useEffect, useCallback } from "react";
function MyComponent() {
 const [count, setCount] = useState(0);
 useEffect(() => {
 console.log(count);
 }, [count]);
 return <div>{count}</div>;
}

❌ DON'T (Old Pattern - Causes Lint Warnings)

import React from "react";
function MyComponent() {
 const [count, setCount] = React.useState(0); // ❌ Don't use React.useState
 React.useEffect(() => {
 // ❌ Don't use React.useEffect
 console.log(count);
 }, [count]);
 return <div>{count}</div>;
}

Common React Imports

// Hooks
import React, {
 useState, // State management
 useEffect, // Side effects
 useCallback, // Memoized callbacks
 useMemo, // Memoized values
 useRef, // Refs
 useContext, // Context consumption
 useReducer, // Complex state
} from "react";
// Components & Utilities
import React, {
 Component, // Class components
 lazy, // Code splitting
 Suspense, // Loading fallback
 Fragment, // <> shorthand
 Children, // Children utilities
 createRef, // Refs for class components
} from "react";
// Types (TypeScript)
import React, {
 FC, // Functional Component
 ReactNode, // React node type
 ReactElement, // React element type
} from "react";

Why This Matters

  1. Cleaner Code: Direct imports are more readable
  2. Better Tree-Shaking: Bundlers can optimize better
  3. Modern Standard: Aligns with React 17+ best practices
  4. Fewer Warnings: Keeps ESLint happy
  5. Future-Proof: Ready for React 18 and beyond

Clone this wiki locally

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /