مكونات Livewire v4 لديها خطافات دورة حياة تعمل في أوقات محددة.
مثال دورة حياة كامل
class UserProfile extends Component
{
public User $user;
public string $name;
public string $email;
// يعمل مرة واحدة عند إنشاء المكون
public function mount(User $user): void
{
$this->user = $user;
$this->name = $user->name;
$this->email = $user->email;
}
// يعمل في كل طلب (قبل الترطيب)
public function boot(): void
{
// جيد لفحوصات التفويض
if (!auth()->user()->can('view', $this->user)) {
abort(403);
}
}
// يعمل بعد ترطيب المكون من الحالة
public function hydrate(): void
{
// إعادة تهيئة البيانات غير المحفوظة
}
// يعمل قبل تحديث خاصية محددة
public function updatingName($value): void
{
$this->name = trim($value);
}
// يعمل بعد تحديث خاصية محددة
public function updatedName($value): void
{
$this->validate(['name' => 'required|min:2']);
}
// يعمل قبل تحديث أي خاصية
public function updating($property, $value): void
{
logger("تحديث {$property} إلى {$value}");
}
// يعمل بعد تحديث أي خاصية
public function updated($property, $value): void
{
logger("تم تحديث {$property} إلى {$value}");
}
public function render(): View
{
return view('livewire.user-profile');
}
}