Tabs, wizards, and dashboards often swap the active panel without changing routes. Vue’s <component :is="..."> renders whichever component definition matches the current tab id.
Local registration
Register child components on the parent’s components option (or globally in apps). The :is binding accepts a component object or string name.
Keep-alive (concept)
Wrap dynamic views in <KeepAlive> when you need to preserve input state across tab switches—otherwise Vue destroys inactive panels.
Self-check
- What does
:isbind to—a tag name or a component definition? - When would you prefer a router view over dynamic components?