m.fragment(attrs, children)
Açıklama
Bir fragment vnode'una yaşam döngüsü yöntemleri eklenmesini sağlar.
var groupVisible = true;
var log = function () {
console.log('grup şimdi görünür durumda');
};
m('ul', [
m('li', 'child 1'),
m('li', 'child 2'),
groupVisible
? m.fragment({ oninit: log }, [
// iki eleman içeren bir fragment
m('li', 'child 3'),
m('li', 'child 4'),
])
: null,
]);
İmza
Bir fragment vnode'u oluşturur.
vnode = m.fragment(attrs, children)
Argüman | Tip | Gerekli | Açıklama |
---|---|---|---|
attrs | Object | Hayır | HTML öznitelikleri veya eleman özellikleri. |
children | Array<Vnode>|String|Number|Boolean | Hayır | Alt vnode'lar. Splat argümanları olarak da kullanılabilir. |
döner | Vnode | Bir fragment vnode'u. |
Nasıl Çalışır
m.fragment()
özniteliklere sahip bir fragment vnode'u oluşturur. Anahtarlar veya yaşam döngüsü yöntemleri içeren gelişmiş kullanım senaryoları için tasarlanmıştır.
Bir fragment vnode'u, bir DOM elemanları listesini temsil eder. Eğer yalnızca bir DOM elemanını temsil eden ve anahtarlama mantığı gerektirmeyen bir eleman vnode'u istiyorsanız, bunun yerine m()
kullanmalısınız.
Normalde, bir düğüm listesini belirtmek için basit diziler veya splat'ler kullanabilirsiniz:
var groupVisible = true;
m(
'ul',
m('li', 'child 1'),
m('li', 'child 2'),
groupVisible
? [
// iki eleman içeren bir fragment
m('li', 'child 3'),
m('li', 'child 4'),
]
: null
);
Ancak, JavaScript dizileri anahtarlanamaz ve yaşam döngüsü metotları içeremez. Bir seçenek, anahtar veya yaşam döngüsü yöntemini barındırmak için bir sarmalayıcı (wrapper) öğe oluşturmak olabilir, ancak bazen ek bir öğe kullanmak istenmeyebilir (örneğin karmaşık tablo yapılarında). Bu gibi durumlarda, bunun yerine bir fragment vnode'u kullanılabilir.
m.fragment
kullanmanın, elle bir vnode nesne yapısı oluşturmaya kıyasla birkaç avantajı vardır: m.fragment
, dinamik olarak nesne oluşturmaktan daha iyi performans özelliklerine sahip monomorfik nesneler oluşturur. Ek olarak, m.fragment
kullanmak, niyetinizi diğer geliştiricilere açıkça gösterir ve vnode nesnesindeki öznitelikleri attrs
haritası yerine yanlışlıkla atama olasılığınızı azaltır.