# Что означает app.mount('#app');

`app.mount('#app')` — это **момент, когда Vue реально запускается и начинает рисовать интерфейс**.

---

## Что именно означает

```ts
app.mount('#app')

```

Vue говорит:

> «Найди элемент с id `app` в HTML  
> и **вставь туда корневой Vue-компонент**»

---

## Откуда берётся `#app`

В `index.html`:

```html
<body>
  <div id="app"></div>
</body>

```

`#app` — это обычный CSS-селектор.

---

## Что происходит при `mount`

1️⃣ Vue находит `<div id="app">`  
2️⃣ Создаёт экземпляр приложения  
3️⃣ Рендерит `App.vue`  
4️⃣ Подключает реактивность  
5️⃣ Запускает жизненный цикл компонентов

После этого:

- начинают работать компоненты
- выполняется `setup()`, `mounted()`
- появляется UI

---

## До `mount`

```ts
const app = createApp(App)

```

На этом этапе:

- приложение **ещё не в DOM**
- можно:
    
    
    - подключать плагины
    - регистрировать глобальные компоненты
    - настраивать store / router

```ts
app.use(router)
app.use(pinia)

```

---

## После `mount`

❌ Нельзя:

- подключать плагины
- менять конфигурацию приложения

```ts
app.mount('#app')
// app.use(router) ❌ уже поздно

```

---

## Если `#app` не найден

Vue выдаст ошибку:

```
Failed to mount app: mount target selector "#app" returned null

```

---

## Аналогия 🧠

- `createApp` — собрать мебель
- `use(...)` — прикрутить детали
- `mount('#app')` — **поставить её в комнату**

---

## Коротко

> `app.mount('#app')`  
> 👉 **привязывает Vue-приложение к DOM**

</body>