Vue.js Component Yapısı ve Componente Veri Göndermek
Merhabalar,
Component kavramı, hangi framework olursa olsun farketmeksizin frontend yazılım geliştirmesi için oldukça önemli bir kavramdır. Yani bir yerde frontend‘in OOP(Nesneye Yönelik Programlama)’ye açılan kapısı.
Eğer bir kod bloğunu birden fazla yerde kullanmak istiyorsak, gidip her yere aynı kodu yazmak yerine ( ki yazılımın en önemli amaçlarındandır-DRY — Don’t Repat Yourself!) Component oluşturup işlemi component içerisinde yapıp istediğimiz yerde çağırabiliyoruz.
Gelelim Vue.js’te componentin nasıl oluşturulduğuna!
Projenin düzeni ve kullanılabilirliği için src dosyasına component isimli bir dosya oluşturuyoruz. componentAdi.vue şeklinde amacına uygun bir isim ile bir sayfa oluşturarak componenti oluşturmuş oluyoruz.
Tabii componenti nerede kullanmak istiyorsak orada import etmemiz gerekli. Burada componenti local veya global olarak 2 şekilde import etmek mümkün.
1- Global Component:
Componenti main.js sayfasında import ederek diğer her yerde sadece component ismini çağırarak kullanabiliriz.
2- Local Component
Bu yöntemde ise main.js sayfasında bir ekleme yapmadan direkt olarak componenti kullanmak istediğimiz sayfada import ediyoruz.
- Burada bilmemiz gereken nokta: global component kullandığımızda bir yük oluştururuz. Proje çalıştığı anda hepsi gereksiz yere render edilebilir. Bu yüzden her componenti global olarak import etmememiz önemlidir.
Componentlere Veri Gönderimi
Parent’tan Child’a Veri Gönderimi (props, slot)
- Veri olarak text göndermek istiyorsak props bizim anahtar kelimemiz olacak. app.vue dosyasından göndermek istediğimiz verileri props ile dizi şeklinde gönderebiliyoruz. alt component’ten ise {{…}} parantezleri içerisinde anahtar kelimeler ile alıp istediğimiz yerde kullanabiliyoruz.
- Ya text değil de örneğin HTML bilgilerini de göndermek istiyoruz diyelim. Bunun için de slot yapısı kullanıyoruz. Slot’u bir key ile ya da direkt<slot> tagi içerisinde kullanabiliriz.
Child’tan Parent’a Veri Gönderimi ($emit)
Bu sefer alt component’ten üst componente veri göndermek istiyoruz.Bunu da $emit ile gerçekleştiriyoruz.
Böylece component yapısını ve kullanımını konusunu da tamamlamış olduk. Bir sonraki Vue.js Router yazısında görüşmek üzere! 👐
Kaynakça:
https://www.w3schools.com/vue/vue_v-for-comp.php
https://www.mustafacagri.com/vue-js-components-parentten-childe-veri-aktarimi