In Vue 3, the Vue instance is the application instance. You create it with createApp(), passing a root component that every other component renders inside.
import { createApp } from 'vue'
import App from './App.vue'
import BaseButton from './BaseButton.vue'
const app = createApp(App) // App is the root component
app.component('BaseButton', BaseButton) // a global component
app.config.errorHandler = (err) => console.error(err)
app.mount('#app')
The application instance holds app-level configuration: plugins, global components and options on app.config. Apply all of it before you call .mount(), because nothing renders until then.
The data and methods live in components, starting with the root component, not in the application instance itself.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓