-
-
Notifications
You must be signed in to change notification settings - Fork 32
React Import Best Practices
Harald Walker edited this page Jan 14, 2026
·
1 revision
import React, { useState, useEffect, useCallback } from "react"; function MyComponent() { const [count, setCount] = useState(0); useEffect(() => { console.log(count); }, [count]); return <div>{count}</div>; }
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>; }
// 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";
- Cleaner Code: Direct imports are more readable
- Better Tree-Shaking: Bundlers can optimize better
- Modern Standard: Aligns with React 17+ best practices
- Fewer Warnings: Keeps ESLint happy
- Future-Proof: Ready for React 18 and beyond