Bir Ember.View şu anda W3C tarafından sizin için oluşturulan etiketlerle sınırlıdır. Ancak, uygulamaya özgü HTML etiketlerinizi tanımlamak ve ardından JavaScript kullanarak davranışlarını uygulamak istiyorsanız? Bunu aslında bir Ember.View ile yapamazsınız .
Bileşenlerin tam olarak bunu yapmasına izin verir. Aslında, W3C'nin şu anda Özel Öğeler spesifikasyonu üzerinde çalıştığı iyi bir fikirdir .
Ember'in bileşenleri uygulaması, Web Bileşenleri belirtimine olabildiğince yakın olmaya çalışır. Bir kez Özel Öğeler tarayıcılarda yaygın olarak kullanılabilir, kolayca W3C standartlarına sizin Kor bileşenlerini göç edebilmek ve iyi yeni bir standart benimsemiş olması olarak onları diğer çerçeveler tarafından kullanılabilmelidir olmalıdır.
Bu bizim için çok önemlidir, bileşenlerin uygulanmasının web platformunun yol haritasına uymasını sağlamak için standart kurumlarıyla yakın bir şekilde çalışıyoruz.
Ayrıca dikkat edilmesi gereken önemli bir nokta da bir Ember.Component öğesinin aslında Ember.View (alt sınıf) olmasıdır, ancak bu tamamen izole edilmiştir . Onun şablonlarda Mülkiyet erişim gidip görünümü nesne ve eylemlerin de ayrıca hedeflenen görünüm nesnesi. Çevreleyen context
veya dışa erişim yoktur, controller
tüm bağlamsal bilgiler aktarılır , bu da Ember.View ile gerçekten çevreleyen denetleyiciye erişimi olan bir durum değildir, örneğin bir görünüm içinde this.get('controller')
size şu anda görünümle ilişkilendirilmiş denetleyici.
Öyleyse bir görünüm ve bileşen arasındaki temel fark nedir?
Bu nedenle, bileşenlerin yanı sıra ana fark, kendi etiketlerinizi oluşturmanıza izin verir ve gelecekte Özel Öğeler kullanılabilir olduğunda bir noktada da bu öğeleri özel öğeleri destekleyecek diğer çerçevelerde geçirir / kullanır, aslında bir noktada bir kor bileşeni söz konusu uygulama durumuna bağlı olarak biraz eski görünecektir.
Ve bir bileşen üzerinde bir görünüm kullanmayı tercih edersem yaygın bir örnek ne olurdu?
Yukarıdakileri takip etmek, açıkça kullanım durumlarınıza bağlıdır. Ancak, genel bir kural olarak, görünümünüzde çevresindeki denetleyiciye vb. Erişmeniz gerekiyorsa , bir Ember.View kullanın , ancak görünümü izole etmek ve yalnızca bağlamsal agnostik hale getirmek için çalışması gereken bilgileri iletmek istiyorsanız ve çok daha fazla yeniden kullanılabilir, bir Ember.Component kullanın .
Umarım yardımcı olur.
Güncelleme
Road to Ember 2.0 yayınlandığında artık çoğu durumda Görünümler yerine Bileşenleri kullanmanız önerilir.