- Bu minör sürüm, dahili iyileştirmeler ve kullanışlı yeni özellikler içeriyor; uyumluluğu bozan değişiklik yok.
Reactivity sistemi optimizasyonu
- Vue'nun reaktif sistemi büyük ölçüde yeniden düzenlendi; performans artırıldı ve bellek kullanımı iyileştirildi (-56%), ancak davranışta bir değişiklik yok.
- Bu yeniden düzenleme, SSR sırasında hesaplanan değerler ve bellekle ilgili sorunları çözüyor.
- 3.5'te büyük ve derin reaktif diziler için reaktivite takibi optimize edildi; bazı durumlarda 10 kata kadar daha hızlı.
Reactive Props Destructure
- Reactive Props Destructure, 3.5 ile kararlı hale geldi ve varsayılan olarak etkinleştirildi.
<script setup> içinde defineProps çağrısından destructure edilen değişkenler artık reaktif.
- Bu özellik, JavaScript'in varsayılan değer sözdizimini kullanarak varsayılan değeri olan props'ları tanımlamayı büyük ölçüde basitleştiriyor.
SSR iyileştirmeleri
Lazy Hydration
- Asenkron bileşenler artık
defineAsyncComponent() API'sindeki hydrate seçeneğiyle bir strateji belirleyerek hydration zamanını kontrol edebiliyor.
useId()
useId(), sunucu ve istemci render'ında tutarlı şekilde garanti edilen, uygulama başına benzersiz ID'ler üretmek için kullanılabilen bir API.
- Form öğeleri ve erişilebilirlik öznitelikleri için ID üretmekte kullanılabilir; hydration uyumsuzluğu olmadan SSR uygulamalarında kullanılabilir.
data-allow-mismatch
- İstemci değerinin sunucu değerinden kaçınılmaz olarak farklı olacağı durumlarda (ör. tarih),
data-allow-mismatch özniteliğiyle hydration uyumsuzluğu uyarıları bastırılabilir.
- İzin verilen uyumsuzluk türlerini sınırlamak için özniteliğe bir değer de verilebilir (
text, children, class, style, attribute).
Custom element iyileştirmeleri
- 3.5,
defineCustomElement() API'siyle ilgili uzun süredir devam eden birçok sorunu gideriyor ve Vue ile custom element yazmak için çeşitli yeni özellikler ekliyor.
configureApp seçeneği aracılığıyla custom element'ler için uygulama yapılandırması desteği sunuluyor.
useHost(), useShadowRoot() ve this.$host API'leri eklenerek custom element'in host öğesine ve shadow root'una erişim sağlanıyor.
shadowRoot: false geçirilerek Shadow DOM olmadan custom element mount etmeyi destekliyor.
nonce seçeneği desteği sunuluyor; bu değer, custom element tarafından eklenen <style> etiketine iliştiriliyor.
Dikkat çeken diğer özellikler
useTemplateRef()
- 3.5,
useTemplateRef() API'siyle template ref elde etmenin yeni bir yolunu sunuyor.
- 3.5'ten önce, değişken adını statik
ref özniteliğiyle eşleştiren normal ref kullanımı öneriliyordu.
- Önceki yaklaşım, derleyicinin
ref özniteliğini analiz edebilmesini gerektirdiği için statik ref öznitelikleriyle sınırlıydı.
- Buna karşılık
useTemplateRef(), ref'leri çalışma zamanındaki string ID üzerinden eşleştirdiğinden, değişen ID'ler için dinamik ref binding desteği sunuyor.
Deferred Teleport
- Yerleşik
<Teleport> bileşeninin bilinen bir kısıtı, teleport bileşeni mount edildiğinde hedef öğenin mevcut olması gerekliliğiydi.
- Bu nedenle kullanıcıların, içeriği Vue tarafından render edilen başka bir öğeye teleport etmesi engelleniyordu.
- 3.5'te, mevcut render döngüsünden sonra mount edilen
<Teleport> için defer prop'u eklendi; böylece bu artık çalışıyor.
onWatcherCleanup()
- 3.5, watcher içinde cleanup callback kaydetmek için global olarak içe aktarılan
onWatcherCleanup() API'sini tanıtıyor.
3 yorum
Bu sürümde, gerçek bileşen geliştirme sırasında kullanım kolaylığı gerçekten çok artmış.
Bu sürümün adı
Tengen Toppa Gurren Lagannimiş. (Bir başyapıttır! Benim izlediğim Gainax yapımları arasında sanırım sonuncusu buydu.)Vue, geleneksel olarak manga/anime adlarını kullandı. 1.0
Evangelion, 2.0Ghost in the Shell, 3.0One Piece, 3.3Rurouni Kenshin, 3.4Slam Dunkhttps://en.wikipedia.org/wiki/Vue.js#Versions