-
What is React
-
DOM
- DOM vs Virtual DOM
- Reconciliation
- working
- Diffing Algorithm
- React Fibre
- incremental rendering
- Shadow DOM
-
Dynamic rendering
-
props vs state
-
Server Side vs Client Side Rendering in React
-
Synthetic Events
- Event Pooling
-
Life Cycle
-
View Oriented
-
Memoization
-
Pure functions and components
-
Strict Mode
-
SPAs vs MPAs
-
CSR vs SSR
-
Static vs Dynamic rendering
- ISR, SPA
-
Components
- A React render tree
- top-level components
- leaf components
- Props
- immutable
- Forwarding props
- children
- Importance of making them pure
- local mutation
-
JSX
- Rules of JSX
- Fragment
- JavaScript in JSX
- HTML VS JSX
-
Conditional rendering
-
Key
-
UI as a tree
- Render trees
- Module Dependency Tree
- Bundler
- eg: Webpack
- Compiling
- Loader
- Code splitting
-
Rendering steps
- Triggering
- Rendering
- Committing
-
Rerendering
-
Batching updates
-
State
- Behaviour
- Queueing updates
- Updater function
- Updating object
- local var vs state var
- local mutation
- Lifting state
- Reducer
-
Declarative vs Imperative UI
-
Event handlers
onClick
, onSubmit
etc…
- Stopping propagation
- Preventing default
-
Lifecycle Methods
- What is Mounting, Unmounting
- Phases
- Mounting phase
- constructor
- render
- getDerivedStateFromProps
- componentDidMount
- Updating phase
- shouldComponentUpdate
- componentWillUpdate
- componentDidUpdate
- getSnapshotBeforeUpdate
- Unmounting phase
- componentWillUnmount
- Error Handling
- getDerivedStateFromError
- componentDidCatch
-
Hooks
- useState
- changeValue
- changeValueWithFunction
- useRef
- html
- useState vs useRef
- forwardRef
- useImperativeHandle
- flushSync
- useEffect
- dependency
- return in useEffect
- useLayoutEffect
- useMemo
- sample
- recache
- pros and cons
- referential equality
- useHistory
- push
- pop
- replace
- Redirect
- useNavigate
- navigate()
- route
- -1, 1
- useCallback
- sample
- useMemo vs useCallback
- uses
- useContext
- sample
- useReducer
- Create custom hooks
- useDebugValue
- useTransition
- useDeferredValue
- useId
- sample
- useImperativeHandle
-
Props
- default prop
- PropDrilling
- Children
-
Components
- Creating Components
- Controlled vs Uncontrolled Components
- Inputs
- Higher order components
- Pure components
-
React Router
- install
- Hooks
- useHistory
- useNavigate
- use
- Link
- replace
- reloadDocument
state={}
- useLocation()
- NavLink
- isActive
- end
- Navigate
- useNavigate
- navigate(-1)
- Types of Router
- BrowserRouter
- HashRouter
- HistoryRouter
- MemoryRouter
- StaticRouter
- NativeRouter
- params (:id)
- const {<name>} = useParams()
- useSearchParams
- Nesting Routes
- index
- location
- shared element with children
- outlet
- useOutletContext()
- Nesting in separate file
- useRoute