Migration is a product decision: strangler slices replace jQuery modules with vanilla or framework components while the rest of the page keeps shipping.
Practical order
- Inventory global
$handlers and plugins - Replace read-only utilities (
textContent,classList) - Swap Ajax to
fetchwith shared error UI - Extract widgets into Web Components or framework islands
Testing
Characterize critical forms and tables with smoke tests before/after each slice—operators notice broken delegation faster than broken animations.
Framework path
Teams often jump to Vue or React for new islands while jQuery handles the shell—plan bundle splitting to avoid loading both everywhere.
Self-check
- What is the smallest first slice you would migrate?
- How prove parity?
Tip: Replace read-only utilities first (textContent, classList) before ripping out plugin widgets.
Interview prep
- Safe migration approach?
Inventory handlers, strangler-rewrite hot paths to vanilla or a framework, keep tests on critical forms and Ajax flows.