Sobes.tech
Middle

Rääkige Vue.js komponendi elutsüklist.

sobes.tech AI

Vastus AI-lt

Vue.js komponendi elutsükkel on hukkide kogum, mis kutsutakse selle olemasolu erinevatel etappidel: loomisest kuni hävitamiseni.

Peamised hukkid:

  1. Loomine:

    • beforeCreate: Komponent on loodud, kuid andmed ja meetodid pole veel initsialiseeritud.
    • created: Komponent on loodud, andmed ja meetodid on initsialiseeritud, kuid DOM pole veel joonistatud.
  2. Monteerimine:

    • beforeMount: Mall on kompileeritud, kuid komponent pole veel DOM-i sisestatud.
    • mounted: Komponent on DOM-i sisestatud, saab DOM-elementidele ligi $el kaudu.
  3. Uuendamine:

    • beforeUpdate: Komponendi andmed on muutunud, kuid DOM pole veel uuendatud.
    • updated: DOM on uuendatud andmete muutmise järel.
  4. Hävitatamine:

    • beforeUnmount: Komponent valmistub eemaldamiseks DOM-ist.
    • unmounted: Komponent on eemaldatud DOM-ist.

Lisaks põhihukkidele on olemas ka silumis- ja vigade käsitlemise hukkid:

  • renderTracked: jälgib reaktiivseid sõltuvusi renderdamise ajal.
  • renderTriggered: kutsutakse, kui reaktiivse oleku muutmine nõuab uuesti renderdamist.
  • errorCaptured: püüab kinni vead, mis tekivad lapsekomponentides.
// Hukkide kasutamise näide
export default {
  data() {
    return {
      message: 'Hello Vue!'
    };
  },
  beforeCreate() {
    console.log('beforeCreate: Komponent on loodud, andmed ja meetodid pole veel kättesaadavad.');
  },
  created() {
    console.log('created: Komponent on loodud, andmed ja meetodid on kättesaadavad.');
    console.log('Message:', this.message);
  },
  beforeMount() {
    console.log('beforeMount: Mall on kompileeritud.');
  },
  mounted() {
    console.log('mounted: Komponent on DOM-i sisestatud.');
    console.log('DOM element:', this.$el);
  },
  beforeUpdate() {
    console.log('beforeUpdate: Andmed on muutunud, kuid DOM pole veel uuendatud.');
  },
  updated() {
    console.log('updated: DOM on uuendatud.');
  },
  beforeUnmount() {
    console.log('beforeUnmount: Komponent valmistub eemaldamiseks.');
  },
  unmounted() {
    console.log('unmounted: Komponent on eemaldatud.');
  }
};