Bu bölüm, âweb bileÅenleriâ için bir dizi modern standardı tanımlayacaktır.
Åu anda bu standartlar geliÅtirme aÅamasındadır. Bazı standartlar iyi bir desteÄe sahip ve modern HTML/DOM standardına entegre edilmiÅken, diÄerleri henüz taslak aÅamasındadır. Ãrnekleri herhangi bir tarayıcıda deneyebilirsiniz, Google Chrome muhtemelen bu özellikler konusundaki en güncel tarayıcı seçeneÄi olacaktır. Bunun nedeni belki de Google takımının ilgili birçok özelliÄin arkasında olmasıdır.
⦠arasında ortak olan nedir?
Bu bileÅen fikri tamamen yeni bir Åey deÄil. Birçok framework ve dahası tarafından daha önceden kullanılmaktaydı.
Detayları tanımlamaya baÅlamadan önce insanlıÄın bu büyük baÅarısına bir göz atalım:
Bu, Uluslararası Uzay İstasyonu (ISS).
Bu ise içerisinde ne olduÄu (hemen hemen):
Uluslararası Uzay İstasyonu:
- Birçok bileÅenden meydana gelir.
- Her bileÅen kendi tarafında, içerisinde çok sayıda küçük detaylara sahiptir.
- BileÅenler oldukça karmaÅık, birçok websitesinden çok daha karmaÅık bir yapıdadır.
- BileÅenler; farklı dilleri konuÅan, farklı ülkelerden takımlar tarafından, uluslararası olarak geliÅtirilir.
⦠Ayrıca bu Åey, içerisinde insanları canlı tutarak uzayda uçar!
Bu kadar karmaÅık cihazlar nasıl oluÅturulur?
GeliÅtirmemizi aynı düzeyde güvenilir ve ölçeklenebilir hale getirmek için hangi prensipleri ödünç alabiliriz? En azından, yaklaÅabilmek için.
BileÅen mimarisi
KarmaÅık yazılım geliÅtirmenin en meÅhur kuralı Åudur: karmaÅık yazılım yapma.
Bir Åey eÄer karmaÅıklaÅacaksa â onu parçalara ayır ve birbiriyle en açık Åekilde bir araya getir.
İyi bir mimar, karmaÅıÄı basit bir Åekilde oluÅturabilendir.
Kullanıcı arayüzünü görsel bileÅenlere ayırabiliriz: herbiri sayfada kendi yerine sahip olur, iyi tanımlanmıŠbir görev âyaparâ ve diÄerlerinden ayrıdır.
Åimdi bir web sitesine, örneÄin Twitterâa bir göz atalım.
DoÄal olarak bileÅenlere ayrılıyor:
- Ãst menü.
- Ãye bilgisi.
- Takip önerileri.
- Gönderi formu.
- (ve aynı zamanda 6, 7) â mesajlar.
BileÅenler alt bileÅenlere sahip olabilir; örneÄin mesajlar, bir üst seviyedeki âmesaj listesiâ bileÅeninin birer parçası olabilir. Tıklanabilir bir kullanıcı resmi kendi baÅına bir bileÅen olabilir ve bu Åekilde gider.
Bir bileÅenin ne olduÄuna nasıl karar vereceÄiz? Bu biraz da sezgiden, deneyimden ve saÄduyudan gelir. Genellikle ne yaptıÄını ve sayfa ile nasıl etkileÅimde bulunduÄunu tanımlayabildiÄimiz, ayrılmıŠbir görsel varlıktır. Yukarıdaki durumda sayfa bloklara sahiptir, bunların herbiri kendi rolünü oynar. Bu durumda bunları bileÅen yapmak mantıklıdır.
Bir bileÅen Åunlara sahiptir:
- kendi JavaScript sınıfı.
- yalnızca kendi sınıfı tarafından yönetilen DOM mimarisi, dıŠkod buna eriÅemez (âkapsüllemeâ prensibi).
- BileÅen tarafından uygulanan CSS stilleri
- API: diÄer bileÅenlerle etkileÅime geçmek için olaylar, sınıf metotları vs.
Bir kez daha deÄinelim, tüm bu âbileÅenâ yapısı özel bir Åey deÄildir.
Bunları oluÅturmak için çok fazla framework ve geliÅtirme metodolojisi vardır, herbirinin kendi gösteriÅi vardır. Genellikle âbileÅen hissiâ saÄlamak adına, CSS kapsamı ve DOM kapsülleme için özel CSS sınıfları ve kuralları kullanır.
âWeb bileÅenleriâ bunun için yerleÅik tarayıcı özellikleri saÄlar, bu yüzden bunları artık taklit etmemize gerek yok.
- Ãzel elementler â özel HTML elementleri tanımlamak için.
- Gölge DOM â bileÅen için iç DOM oluÅturarak onu diÄerlerinden gizlemek için.
- CSS Kapsamı â yalnızca bileÅen içindeki Gölge DOMâa etki edecek stiller tanımlamak için.
- Olay yeniden hedefleme ve özel bileÅenlerin geliÅtirmeye daha çok uyması için diÄer Åeyler.
Bir sonraki bölümde, web bileÅenleri için temel, iyi desteÄe sahip ve kendi baÅına iyi bir yapıya sahip olan "Ãzel Elementler"in detaylarına ineceÄiz.
Yorumlar
<code>kullanınız, birkaç satır eklemek için ise<pre>kullanın. EÄer 10 satırdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)