fragment(attrs, children)
Leírás
Lehetővé teszi életciklus metódusok hozzárendelését egy fragment vnode-hoz.
var groupVisible = true;
var log = function () {
console.log('group is now visible');
};
m('ul', [
m('li', 'child 1'),
m('li', 'child 2'),
groupVisible
? m.fragment({ oninit: log }, [
// egy fragment, amely két elemet tartalmaz
m('li', 'child 3'),
m('li', 'child 4'),
])
: null,
]);
Szignatúra
Létrehoz egy fragment vnode-ot.
vnode = m.fragment(attrs, children)
Paraméter | Típus | Kötelező | Leírás |
---|---|---|---|
attrs | Object | Nem | HTML attribútumok vagy elem tulajdonságok. |
children | Array<Vnode>|String|Number|Boolean | Nem | Gyerek vnode-ok. Használható splat argumentumként. |
returns | Vnode | Egy fragment vnode. |
Hogyan kell olvasni a szignatúrákat
Hogyan működik
Az m.fragment()
létrehoz egy fragment vnode-ot a megadott attribútumokkal. Haladó felhasználási esetekhez készült, amelyek kulcsokat vagy életciklus metódusokat igényelnek.
A fragment vnode DOM elemek egy listáját reprezentálja. Ha egy reguláris elem vnode-ot szeretne, amely egyetlen DOM elemet reprezentál, és nincs szüksége kulcsolt logikára, akkor használja inkább az m()
függvényt.
Általában egyszerű tömböket vagy splat argumentumokat használhat a csomópontok listájának jelölésére:
var groupVisible = true;
m(
'ul',
m('li', 'child 1'),
m('li', 'child 2'),
groupVisible
? [
// egy fragment, amely két elemet tartalmaz
m('li', 'child 3'),
m('li', 'child 4'),
]
: null
);
Azonban a JavaScript tömböknek nem lehet kulcsot rendelni, és nem tartalmazhatnak életciklus metódusokat. Az egyik lehetőség egy burkoló elem létrehozása a kulcs vagy az életciklus metódusok tárolására, de néha nem kívánatos egy extra elem (például komplex táblázatszerkezetekben). Ezekben az esetekben egy fragment vnode használata lehet a megfelelő megoldás.
Számos előnye van annak, ha az m.fragment
-et használja a vnode objektumstruktúra kézi létrehozása helyett: Az m.fragment
monomorfikus objektumokat hoz létre, amelyek jobb teljesítményt nyújtanak, mint az objektumok dinamikus létrehozása. Ezenkívül az m.fragment
használata egyértelművé teszi a szándékot más fejlesztők számára, és csökkenti annak a valószínűségét, hogy tévesen állít be attribútumokat a vnode objektumon az attrs
mező helyett.