Skip to content

هوک‌های چرخه حیات - Lifecycle Hooks

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

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

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

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

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

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

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

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

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

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

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

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

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

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

هوک‌های چرخه حیات - Lifecycle Hooks has loaded