Sobes.tech
Middle

გთხოვთ, ისაუბრეთ Vue.js-ის კომპონენტის ციკლზე.

sobes.tech AI

პასუხი AI-სგან

Vue.js კომპონენტის სიცოცხლის ციკლი — ეს არის ხაზი ჰუკების, რომლებიც გამოიძახებიან მისი არსებობის სხვადასხვა ეტაპებზე: შექმნიდან განადგურებამდე.

ძირითადი ჰუკები:

  1. შექმნა:

    • beforeCreate: კომპონენტი შექმნილია, მაგრამ მონაცემები და მეთოდები ჯერ არ არის ინიციალიზებული.
    • created: კომპონენტი შექმნილია, მონაცემები და მეთოდები ინიციალიზებულია, მაგრამ DOM ჯერ არ არის მოხატული.
  2. მონტაჟი:

    • beforeMount: შაბლონი კომპილირებულია, მაგრამ კომპონენტი ჯერ არ არის ჩასმული DOM-ში.
    • mounted: კომპონენტი ჩასმულია DOM-ში, შესაძლებელია DOM ელემენტების წვდომა $el-ის საშუალებით.
  3. განახლება:

    • beforeUpdate: კომპონენტის მონაცემები შეიცვალა, მაგრამ DOM ჯერ არ განახლებულა.
    • updated: DOM განახლდა მონაცემების ცვლილების შემდეგ.
  4. განადგურება:

    • beforeUnmount: კომპონენტი მზადდება ამოიღოს DOM-დან.
    • unmounted: კომპონენტი ამოღებულია DOM-დან.

გარდა ძირითადი ჰუკების, არსებობს დევგინგისა და შეცდომების მართვის ჰუკები:

  • renderTracked: რეაქტიული დამოკიდებულებების თვალთვალი რენდერის დროს.
  • renderTriggered: გამოიძახება, როდესაც საჭიროა განმეორებითი რენდერი რეაქტიული მდგომარეობის ცვლილების გამო.
  • errorCaptured: იჭერს შეცდომებს, რომლებიც წარმოიშობა შვილობილი კომპონენტებში.
// ჰუკების გამოყენების მაგალითი
export default {
  data() {
    return {
      message: 'Hello Vue!'
    };
  },
  beforeCreate() {
    console.log('beforeCreate: კომპონენტი შექმნილია, მონაცემები და მეთოდები ჯერ არ არის ხელმისაწვდომი.');
  },
  created() {
    console.log('created: კომპონენტი შექმნილია, მონაცემები და მეთოდები ხელმისაწვდომია.');
    console.log('Message:', this.message);
  },
  beforeMount() {
    console.log('beforeMount: შაბლონი კომპილირებულია.');
  },
  mounted() {
    console.log('mounted: კომპონენტი ჩასმულია DOM-ში.');
    console.log('DOM ელემენტი:', this.$el);
  },
  beforeUpdate() {
    console.log('beforeUpdate: მონაცემები შეიცვალა, მაგრამ DOM ჯერ არ განახლებულა.');
  },
  updated() {
    console.log('updated: DOM განახლდა.');
  },
  beforeUnmount() {
    console.log('beforeUnmount: კომპონენტი მზადდება ამოიღოს.');
  },
  unmounted() {
    console.log('unmounted: კომპონენტი ამოღებულია.');
  }
};