Start here. This is the direct spoken answer to practice first.
Overview
A small bundle is not automatically a fast experience if users repeatedly wait on fragmented chunks or lose stable context.
lazy loads a component's module when it is first rendered, and the nearest Suspense boundary shows a fallback while that code is unavailable. I split at meaningful route or feature boundaries, not every component. The fallback preserves surrounding navigation and layout, and an error boundary handles a failed chunk because Suspense represents waiting, not failure.