Livewire v3 Laravel Framework'teki Yenilikler Nelerdir?

Livewire v3 Laravel Framework'teki Yenilikler Nelerdir?

Laravel Livewire, bir web sayfasında doğrudan JavaScript kodu yazmadan dinamik davranış elde etmek için harika bir araçtır. Laravel'in rahatlığından ayrılmadan dinamik arayüzler oluşturmayı basitleştirir. Son zamanlarda, Livewire çekirdeği tamamen yeniden yazıldı.





Yeni Livewire v3 daha iyi farklılıklara sahip, özellikler daha hızlı oluşturulabiliyor ve Livewire ile Alpine arasında daha az tekrar var çünkü Alpine'e daha çok güveniyor ve Morph, History ve diğer eklentilerini kullanıyor. Yeni özelliklerin birçoğu, kod tabanının yeniden yapılandırılması ve Alpine'e daha fazla vurgu yapılmasıyla da mümkün hale getirildi.





GÜNÜN YAPILAN VİDEOSU

1. Livewire Komut Dosyalarını, Stilleri ve Alpine'i Otomatik Olarak Enjekte Edin

Besteci Livewire v2'yi yükledikten sonra, mizanpajınıza @livewireStyles, @livewireScripts ve Alpine'ı manuel olarak eklemelisiniz. Livewire v3 ile, Livewire'ı kurmanız yeterlidir ve ihtiyacınız olan her şey otomatik olarak enjekte edilir - Alpine dahil!





<!DOCTYPE html> 
<html lang="en">
<head>
<script src="//unpkg.com/alpinejs" defer></script>
@livewireStyles @livewireScripts
</head>
<body>
...
</body>
</html>

2. PHP sınıflarında JavaScript İşlevleri

Livewire v3, JavaScript işlevlerini doğrudan arka uç Livewire bileşenlerinize yazmayı destekleyecektir. Bileşeninize bir işlev ekleyin, işlevin üstüne bir /\*_ @js _/ yorumu ekleyin, ardından PHP'nin HEREDOC sözdizimini kullanarak bir JavaScript kodu döndürün ve onu ön ucunuzdan çağırın. JavaScript kodu, arka ucunuza herhangi bir istek göndermeden yürütülecektir.

<?php 
namespace App\Http\Livewire;
class Todos extends \Livewire\Component
{
/** @prop */
public $todos;
/** @js */
public function clear()
{
return <<<'JS'
this.todo = '';
JS;
}
}
?>
<div>
<input wire:model="todo" />
<button wire:click="clear">Clear</button>
</div>

3. Kilitli Özellikler

Livewire v3, kilitli özellikleri destekleyecektir - ön uçtan güncellenemeyen özellikler. Bileşeninizdeki bir özelliğin üzerine /\*\* @locked / yorum ekleyin ve birisi bu özelliği ön uçtan güncellemeye çalışırsa Livewire bir istisna atar.



<?php 
namespace App\Http\Livewire;
class Todos extends \Livewire\Component
{
/** @locked */
public $todos = [];
}
?>

4. Tel: Model Varsayılan Olarak Ertelenir

Livewire ve kullanımı geliştikçe, 'ertelenmiş' davranışın formların %95'i için daha anlamlı olduğunu fark ettik, bu nedenle v3'te 'ertelenmiş' işlevsellik varsayılan olacaktır. Bu, sunucunuza giden gereksiz isteklerden tasarruf edecek ve performansı artıracaktır. Bir girişte 'canlı' işlevselliğe ihtiyaç duyduğunuzda, bu işlevi etkinleştirmek için wire:model.live'ı kullanabilirsiniz.