Bildirimsel Gölge DOM
shadowrootmode kullanarak JavaScript olmadan HTML'den gölge DOM ekleyin
Bildirimsel Gölge DOM, CoddyKit'te ücretsiz bir HTML Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, HTML Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. HTML Academy kursu toplamda 4 dersten oluşur.
Çözdüğü Sorun
Geleneksel gölge DOM, JavaScript ile (attachShadow) oluşturulur. Sunucu tarafından oluşturulan sayfalarda bu, JS çalışana kadar gölge ağacının boş kalması demektir; bu durum, ilk baytta eksiksiz HTML sunma amacını boşa çıkarır. Bildirimsel gölge DOM bu sorunu çözer.
shadowrootmode Özniteliği
shadowrootmode="open" içeren bir <template>, ayrıştırma sırasında HTML içinde bir gölge kökü bildirir. Tarayıcı gölge kökünü üst öğeye otomatik olarak bağlar; şablonun içeriği gölge ağacına dönüşür. JavaScript gerekmez.
<my-card>
<template shadowrootmode="open">
<style>:host { display: block; padding: 16px; }</style>
<slot></slot>
</template>
<p>This goes into the slot</p>
</my-card>Web Bileşenleriyle SSR
Bildirimsel gölge DOM, gerçekten sunucu tarafından oluşturulan web bileşenlerini mümkün kılar: sunucu tam gölge ağacını satır içine gömülü olarak gönderir, tarayıcı bunu herhangi bir JS çalışmadan önce ayrıştırıp bağlar ve hidratasyon JS'si tam olarak oluşturulmuş bir temel üzerinden devralabilir. Böylece çerçevelerin SSR çözümleriyle eşit düzeye gelinir.
Mod: open veya closed
Buyurucu attachShadow ile aynı modlar kullanılır: shadowrootmode="open", gölge kökünü element.shadowRoot üzerinden erişilebilir kılar; shadowrootmode="closed" ise onu gizler. Davranış, JavaScript ile bağlanan karşılığıyla aynıdır.
Öğe Başına Bir Kez Ayrıştırılır
Tarayıcı, <template shadowrootmode> öğesini ilk gördüğünde gölge kökünü bağlar. Bağlandıktan sonra şablon tüketilir; daha sonra şablon için sorgu yapıldığında hiçbir sonuç döndürülmez. Bu, attachShadow yaşam döngüsüyle uyumludur: bir gölge kökü, öğenin yaşam süresi boyunca var olur.
Yuvalar Normal Çalışır
Işık alt öğeleri (örnekte <template> dışındaki <p> öğesi), buyurucu gölge DOM'da olduğu gibi gölge ağacının içindeki <slot> öğelerine yansır. Birleştirme modeli aynıdır; yalnızca bağlama mekanizması farklıdır.
Özel Öğelerle Birleştirme
<my-card> kayıtlı bir özel öğeyse yükseltme süreci, attachShadow'ı yeniden çağırmak yerine önceden bağlanmış gölge kökünü kullanır. Özel öğe sınıfı, onu oluşturmasına gerek kalmadan connectedCallback içinde this.shadowRoot değerini okuyabilir.
Sunucu Araçları Desteği
Lit-html'in render işlevi, Astro bileşenleri ve diğer bazı çerçeveler artık SSR çıktılarının bir parçası olarak bildirimsel gölge DOM üretir. Kendi çözümünüzü yazmanız da mümkündür: herhangi bir dize şablonlama sistemi shadowrootmode şablonunu yazabilir.
Tarayıcı Desteği
Bildirimsel gölge DOM, Chrome, Edge, Safari ve Firefox'ta kullanılabilir. Daha eski tarayıcılar <template> öğesini sessizce yok sayar; şablonun içeriği görünmez. Bu, desteklemeyen ortamlar için zarif bir geriye dönük uyumluluk sağlar.
Uyumluluk Katmanı Stratejisi
Daha geniş destek için küçük bir betik DOM'u tarayarak template[shadowrootmode] öğelerini gerçek gölge köklerine dönüştürebilir. Sonraki bileşen yükseltmelerinin beklenen gölge ağacını görmesini sağlamak için bunu herhangi bir özel öğe kaydından önce çalıştırın.
Ödünleşimler
Bildirimsel gölge DOM yapıyı yineler: <template> içeriği, bileşenin sınıfına da gömülü olmasına rağmen HTML içinde bulunur. Aynı bileşenden çok sayıda içeren sayfalarda bu durum yük boyutunu artırır. Çerçeveler yinelemeleri kaldırır; kendi SSR çözümünüzü yazıyorsanız aynı işlemi yapmak isteyebilirsiniz.
Ne Zaman Benimsenmeli
Web bileşenleri yayımlıyor ve ilk baytta oluşturma ya da SEO'ya önem veriyorsanız şimdi benimseyin. Bu özellik kararlı, destekleniyor ve web bileşeni tabanlı uygulamaların SSR yaklaşımını büyük ölçüde iyileştiriyor. Gölge DOM kullanmayan uygulamalar için geçerli değildir.
Bilginizi Sınayın
Bildirimsel gölge DOM, buyurucu attachShadow'a kıyasla hangi sorunu çözer?
Özet
Bildirimsel gölge DOM, ayrıştırma sırasında gölge kökü bağlamak için özel bir öğenin içinde <template shadowrootmode="open"> kullanır; JS gerekmez. Gölge ağacı, kapsamı sınırlandırılmış stiller ve yuvalar hidratasyondan önce çalıştığı için web bileşenleri için gerçek SSR sağlar. Tüm modern tarayıcılarda desteklenir; daha eski tarayıcılar için uyumluluk katmanı kullanılabilir. Çerçeveler (Lit, Astro) bunu otomatik olarak üretir.
Sıkça Sorulan Sorular
“Bildirimsel Gölge DOM” dersi ücretsiz mi?
Evet — “Bildirimsel Gölge DOM” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve HTML Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. HTML Academy kursu toplamda 4 dersten oluşur.
“Bildirimsel Gölge DOM” dersinde ne öğreneceğim?
shadowrootmode kullanarak JavaScript olmadan HTML'den gölge DOM ekleyin HTML Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
HTML Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te HTML Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Bildirimsel Gölge DOM” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu HTML Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her HTML Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Bildirimsel Gölge DOM
- Popover API
- selectlist Öğesi
- Interest Invoker'lar ve Command Özniteliği