- React Virtual DOM
- React Profiler
- Error boundery
- static getDerivedStateFromError - update the state with error, so that component will render fallback component.
- componentDidCatch - can log error message.
- React Lifecycle
- React Context --> Communication channel, doesn't bother about data organization.
- controlled (component is controlled by parent component props) vs uncontrolled Component
- lazy loading --> React.lazy() and React.Suspense fallback={Loading...}
- Performance Optimization
- use shouldComponentUpdate.
- Not mutate state or props, use spread operator and provide new object everytime.
- avoid accesing dom directly.