2 changed files with 118 additions and 27 deletions
@ -1,24 +1,71 @@ |
|||
# lifecyles |
|||
|
|||
## Project setup |
|||
``` |
|||
npm install |
|||
``` |
|||
|
|||
### Compiles and hot-reloads for development |
|||
``` |
|||
npm run serve |
|||
``` |
|||
|
|||
### Compiles and minifies for production |
|||
``` |
|||
npm run build |
|||
``` |
|||
|
|||
### Lints and fixes files |
|||
``` |
|||
npm run lint |
|||
``` |
|||
|
|||
### Customize configuration |
|||
See [Configuration Reference](https://cli.vuejs.org/config/). |
|||
# Vue.js Lifecycle Hooks Demo 🔄 |
|||
|
|||
Tento projekt slouží k demonstraci životního cyklu komponent ve Vue.js (verze 3). Obsahuje interaktivní příklady, které vypisují zprávy do **konzole prohlížeče** (DevTools), abyste mohli sledovat, v jakém pořadí se jednotlivé metody spouštějí. |
|||
|
|||
## 🚀 Jak začít |
|||
|
|||
1. **Nainstalujte závislosti:** |
|||
Otevřete terminál v této složce a spusťte: |
|||
```bash |
|||
npm install |
|||
``` |
|||
|
|||
2. **Spusťte vývojový server:** |
|||
```bash |
|||
npm run serve |
|||
``` |
|||
|
|||
3. **Otevřete aplikaci:** |
|||
Klikněte na odkaz v terminálu (obvykle `http://localhost:8080`). |
|||
|
|||
4. **DŮLEŽITÉ:** Otevřete si v prohlížeči vývojářské nástroje (F12 nebo pravé tlačítko -> Prozkoumat -> záložka **Console**). Zde uvidíte logy z aplikace. |
|||
|
|||
--- |
|||
|
|||
## 🧪 Co si vyzkoušet? |
|||
|
|||
Aplikace demonstruje tři hlavní scénáře. Sledujte konzoli při provádění těchto akcí: |
|||
|
|||
### 1. Načtení stránky (Creation & Mounting) |
|||
Ihned po načtení stránky uvidíte v konzoli sérii zpráv: |
|||
* `beforeCreate` |
|||
* `created` (zde jsou už dostupná data) |
|||
* `beforeMount` |
|||
* `mounted` (zde je komponenta vidět na obrazovce) |
|||
|
|||
### 2. Klikání na tlačítko "Přidat kliknutí" (Updating) |
|||
Když změníte data (`clickCount`), Vue musí překreslit část stránky. |
|||
* Spustí se `beforeUpdate`. |
|||
* Spustí se `watch` (protože sledujeme proměnnou `clickCount`). |
|||
* Spustí se `computed` (pokud změna ovlivnila vypočítanou hodnotu). |
|||
* Spustí se `updated` (DOM je překreslen). |
|||
|
|||
### 3. Tlačítko "Skrýt/zobrazit Komponentu" (Destruction) |
|||
Toto tlačítko používá direktivu `v-if`. Pokud komponentu skryjete, Vue ji kompletně odstraní z paměti. |
|||
* Spustí se `beforeUnmount` (čas na úklid). |
|||
* Spustí se `unmounted`. |
|||
* *Když ji znovu zobrazíte, celý proces Creation & Mounting začne nanovo.* |
|||
|
|||
--- |
|||
|
|||
## 📚 Slovníček pojmů (Lifecycle Hooks) |
|||
|
|||
| Fáze | Hook | Kdy se spouští? | K čemu je dobrý? | |
|||
| :--- | :--- | :--- | :--- | |
|||
| **Creation** | `beforeCreate` | Úplný začátek, ještě neexistují data (`this.neco`). | Zřídka se používá. | |
|||
| | `created` | Data a metody jsou připraveny. | **Volání API** pro stažení dat. | |
|||
| **Mounting** | `beforeMount` | Těsně před vložením do HTML stránky. | Poslední úpravy před renderem. | |
|||
| | `mounted` | Komponenta je vložena do stránky (DOM). | Přístup k HTML elementům, grafy, timery. | |
|||
| **Updating** | `beforeUpdate` | Data se změnila, ale obrazovka ještě ne. | Debugování změn. | |
|||
| | `updated` | Obrazovka se překreslila podle nových dat. | Akce závislé na novém vzhledu DOMu. | |
|||
| **Destruction** | `beforeUnmount` | Těsně před zničením komponenty. | **Úklid:** zastavení timerů, odpojení listenerů. | |
|||
| | `unmounted` | Komponenta je pryč. | Hotovo. | |
|||
|
|||
--- |
|||
|
|||
## 🧠 Computed vs. Watch |
|||
|
|||
Součástí dema jsou i ukázky pro `computed` a `watch`. |
|||
|
|||
* **Computed (`modMessage`):** Automaticky se přepočítá, když se změní `message`. Je efektivní, protože výsledek ukládá do mezipaměti. |
|||
* **Watch (`clickCount`):** Sleduje proměnnou `clickCount`. Když se změní, spustí funkci (vypíše log, změní text, varuje při vysokém čísle). |
|||
Loading…
Reference in new issue