Skip to content

هوک های چرخه حیات

هر نمونه کامپوننت Vue در هنگام ساخت مجموعه ای از مراحل را طی می کند - برای مثال، نیاز به برقراری مشاهده داده، کامپایل کردن تمپلیت، مانت کردن نمونه در DOM،و بروزرسانی DOM هنگام تغییر داده دارد. همچنین در طول مسیر توابعی به نام هوک های چرخه حیات اجرا می کند که به کاربران فرصت می دهد کد خودشان را در مراحلی خاص وارد کنند.

ثبت هوک های چرخه حیات

برای مثال هوک onMountedهوک mounted برای ایجاد کد بعد از اینکه کامپوننت رِندر اولیه را به اتمام رساند یا نود های DOM ایجاد شدند مورد استفاده قرار می گیرد:

vue
<script setup>
import { onMounted } from 'vue'

onMounted(() => {
  console.log(` کامپوننت اکنون مانت شده است.`)
})
</script>
js
export default {
  mounted() {
    console.log(` کامپوننت اکنون مانت شده است.`)
  }
}

هوک های دیگری وجود دارد که در مراحل مختلفی از چرخه حیات نمونه صدا زده می شوند که رایج ترین آنها هوک های onMounted, onUpdated و onUnmounted است.mounted, updated و unmounted است.

همه هوک های چرخه حیات همراه با کلمه کلیدی this متعلق به آنها که به نمونه فعال فعلی که آن را فراخوانی می کند اشاره دارد، صدا زده می شوند. توجه داشته باشید این به این معنی است که شما باید از نوشتن هوک های چرخه حیات به صورت تابع پیکانی (arrow function) خودداری کنید، در صورت انجام چنین کاری قادر به دستیابی به نمونه کامپوننت از طریق کلمه کلیدی this نخواهید بود.

هنگامی که هوک onMounted صدا زده می شود، Vue به صورت خودکار تابع callback ثبت شده را با نمونه کامپوننت فعال فعلی مرتبط می کند. این امر مستلزم این است که این هوک ها در طول راه اندازی کامپوننت به صورت همزمان (synchronously) ثبت شوند. برای مثال کار زیر را انجام ندهید:

js
setTimeout(() => {
  onMounted(() => {
    // این کار نخواهد کرد.
  })
}, 100)

توجه داشته باشید این به این معنی نیست که فراخوانی از نظر لغوی حتما باید درون setup() یا <script setup> قرار داشته باشد. هوک onMounted() تا زمانیکه پشته فراخوانی همزمان است و از درون setup() ناشی می شود می تواند از یک تابع بیرونی صدا زده شود.

نمودار چرخه حیات

در زیر نموداری برای چرخه عمر نمونه آورده شده است. در حال حاضر نیاز نیست همه چیز را به طور کامل درک کنید، اما با یادگیری و ساخت بیشتر ، مرجعی مفید خواهد بود.

Component lifecycle diagram

برای کنکاش در جزئیات بیشتر در مورد هوک های چرخه حیات و موارد استفاده مربوطه به مرجع API هوک های چرخه حیاتمرجع API هوک های چرخه حیات مراجعه کنید.

هوک های چرخه حیات has loaded