Jak číst signatury
Signaturní sekce obvykle vypadají takto:
vnode = m(selector, attributes, children)
Argument | Typ | Povinný | Popis |
---|---|---|---|
selector | String|Object | Ano | CSS selektor nebo komponenta |
attributes | Object | Ne | HTML atributy nebo vlastnosti elementu |
children | Array<Vnode>|String|Number|Boolean | Ne | Potomci vnode. Lze zapsat jako splat argumenty |
returns | Vnode | Návratová hodnota: vnode |
Řádek signatury nad tabulkou popisuje obecnou syntaxi metody, zobrazuje název metody, pořadí argumentů a doporučený název proměnné pro návratovou hodnotu.
Sloupec Argument v tabulce označuje, který argument signatury je vysvětlen v daném řádku tabulky. Řádek returns
zobrazuje informace o návratové hodnotě metody.
Sloupec Typ udává očekávaný datový typ argumentu.
Svislítko (|
) udává, že argument může být jednoho z uvedených typů. Například String|Object
udává, že selector
může být řetězec NEBO objekt.
Špičaté závorky (< >
) za Array
udávají očekávaný typ položek v poli. Například Array<String>
udává, že argument musí být pole a všechny položky v tomto poli musí být řetězce. Špičaté závorky za Object
udávají typ klíčů a hodnot v objektu (mapě). Například Object<String,Component>
udává, že argument musí být objekt, jehož klíče jsou řetězce a hodnoty jsou komponenty.
Někdy se mohou objevit typy, které nejsou nativní a indikují, že je vyžadována specifická struktura objektu. Například Vnode
je objekt, který má strukturu virtuálního DOM uzlu.
Sloupec Povinný udává, zda je argument povinný nebo volitelný. Pokud je argument volitelný, můžete jej nastavit na null
nebo undefined
, nebo jej zcela vynechat.
Volitelné argumenty
Argumenty funkce obklopené hranatými závorkami [ ]
jsou volitelné. V níže uvedeném příkladu je url
volitelný argument:
m.request([url,] options)
Splat argumenty
Splat argument znamená, že pokud je argument pole, můžete vynechat hranaté závorky a předat prvky pole jako samostatné argumenty metody.
V příkladu nahoře to znamená, že m("div", {id: "foo"}, ["a", "b", "c"])
lze také zapsat jako m("div", {id: "foo"}, "a", "b", "c")
.
Splat argumenty jsou užitečné v jazycích, které se kompilují do JS, jako je CoffeeScript. Umožňují také užitečné zkratky pro běžné případy použití.
Signatury funkcí
Funkce jsou označeny šipkou (->
). Levá strana šipky udává typy vstupních argumentů a pravá strana udává typ návratové hodnoty.
Například parseFloat
má signaturu String -> Number
, tj. přijímá řetězec jako vstup a vrací číslo jako výstup.
Funkce s více argumenty jsou označeny závorkami: (String, Array) -> Number
Signatury komponent
Komponenty jsou označeny voláním m
, ale s prvním argumentem (selektorem) nastaveným na konstantu pojmenovanou v příslušném textu:
vnode = m(m.route.Link, attributes, children)
Argument | Typ | Povinný | Popis |
---|---|---|---|
attributes.href | Object | Ano | Cílová trasa, na kterou se má navigovat. |
attributes.selector | String|Object|Function | Ne | Nastavuje název tagu, který se má použít. Pokud je zadán, musí být platný selektor pro m ; výchozí hodnota je "a" . |
attributes.options | Object | Ne | Nastavuje možnosti předané do m.route.set . |
attributes | Object | Ne | Můžete předat i další atributy, které se aplikují na vrácený vnode. |
children | Array<Vnode>|String|Number|Boolean | Ne | Potomci vnode pro tento odkaz. |
returns | Vnode | Vnode. |
Předpokládá se, že potomky zde, pokud jsou zadány, lze zapsat jako splat argumenty, pokud není v textu uvedeno jinak.
Komponenta bez rozumných potomků a/nebo atributů se může rozhodnout příslušný parametr zcela vynechat:
vnode = m(Component, attributes)
Argument | Typ | Povinný | Popis |
---|---|---|---|
attributes.href | Object | Yes | The |
attributes | Object | Ne | Další atributy, které se aplikují na vrácený vnode |
returns | Vnode | Vnode |