Middle
Vorbiți despre ciclul de viață al unui component în Vue.js.
sobes.tech AI
Răspuns de la AI
Ciclul de viață al unui component Vue.js este o serie de hooks care sunt apelate în diferite etape ale existenței sale: de la creare până la distrugere.
Hooks principale:
-
Creare:
beforeCreate: Componentea a fost creată, dar datele și metodele încă nu sunt inițializate.created: Componentea a fost creată, datele și metodele sunt inițializate, dar DOM-ul nu a fost încă redat.
-
Montare:
beforeMount: Șablonul a fost compilat, dar componenta nu a fost încă inserată în DOM.mounted: Componentea a fost inserată în DOM, se poate accesa elementele DOM prin$el.
-
Actualizare:
beforeUpdate: Datele componentei s-au schimbat, dar DOM-ul nu a fost încă actualizat.updated: DOM-ul a fost actualizat după schimbarea datelor.
-
Demontare:
beforeUnmount: Componentea este pe cale să fie eliminată din DOM. Aici se pot curăța temporizatoare, ascultători de evenimente etc.unmounted: Componentea a fost eliminată din DOM.
Pe lângă principale, există hooks pentru depanare (Debug) și gestionarea erorilor (Error Handling):
renderTracked: Monitorizează dependențele reactive în timpul randării.renderTriggered: Se apelează când componenta trebuie re-redată din cauza unei schimbări în starea reactivă.errorCaptured: Capturează erorile apărute în componentele copil.
// Exemplu de utilizare a hooks
export default {
data() {
return {
message: 'Salut Vue!'
};
},
beforeCreate() {
console.log('beforeCreate: Componentea a fost creată, datele și metodele nu sunt disponibile.');
},
created() {
console.log('created: Componentea a fost creată, datele și metodele sunt disponibile.');
console.log('Mesaj:', this.message);
},
beforeMount() {
console.log('beforeMount: Șablonul a fost compilat.');
},
mounted() {
console.log('mounted: Componentea a fost inserată în DOM.');
console.log('Element DOM:', this.$el);
},
beforeUpdate() {
console.log('beforeUpdate: Datele s-au schimbat, DOM-ul nu a fost actualizat.');
},
updated() {
console.log('updated: DOM-ul a fost actualizat.');
},
beforeUnmount() {
console.log('beforeUnmount: Componentea urmează să fie eliminată.');
},
unmounted() {
console.log('unmounted: Componentea a fost eliminată din DOM.');
}
};