Backbone.js nám představil modulárnější způsob vývoje dnešních webových aplikací rozdělením našeho kódu na sémantické a opakovaně použitelné části. Hlavní berličkou páteře bylo, že nabízela jen minimum, takže se to dalo snadno naučit a nenutilo vás dělat nic, co byste nechtěli, ale my jsme byli ponecháni sami na to, abychom přišli na to, jak mnoho zvládnout. detailů implementace. Marionette je tu, aby vám s tím pomohla.
MarionetteJS
MarionetteJS nabízí několik nových dílků do skládačky Backbone, díky čemuž se toho můžete naučit mnohem víc, ale stejně jako u Backbone si často můžete vybrat, které dílky použijete, takže je můžete použít hned poté, co se naučíte pouze jeden dílek skládačky. Níže si projdu spoustu kousků a vysvětlím, proč jsou úžasné.
- Specializované pohledy: Marionette představuje několik nových tříd zobrazení, které vám výrazně zjednoduší život:
- Zobrazit: Tato třída se nachází pod Marionette.View a je základem pro všechny ostatní třídy. Nabízí všechny hlavní nové funkce pro rozšíření ostatních pohledů, což eliminuje spoustu standardního kódu. Neobtěžujte se používáním této třídy. Místo toho použijte ItemView.
- Zobrazení položky: Tento pohled je určen pro vykreslení jednoho modelu. Zpracovává
render
funkce pro vás. Stačí mu sdělit šablonu, dodat model do instance pohledu a render bude automaticky fungovat. To eliminuje spoustu standardního kódu, který byste normálně museli psát znovu a znovu. Můžete také napsatbeforeRender
neboonRender
funkce, které mají být spuštěny těsně před nebo těsně po volání funkce render. - CollectionView a CompositeView: Tyto dva řeší vykreslování více dílčích pohledů pro každý model v rámci kolekce. Oba mohou mít zadaný ItemView pro použití při vykreslování jednoho modelu, ale pokud CompositeView žádný zadaný nemá, použije k tomu jinou instanci CompositeView.
- Rozvržení: Jedná se o hybrid ItemViews a Regions, který vám umožňuje vykreslit šablonu a poté přiřadit dílčí pohledy oblastem v šabloně rozvržení. Velmi pěkné a lze s ním vytvořit nekonečně hlubokou pohledovou strukturu.
- Aplikace: Jedná se o centralizovanou součást aplikační architektury. Toto je v podstatě hlavní součást aplikace. Má mechanismus pro snadné vytváření modulů, které jsou vlastnostmi aplikace, takže z tohoto objektu lze přistupovat ke všemu v aplikaci.
- AppRouter a Controllers: AppRouters jsou úplně stejné jako normální páteřní router, kromě toho, že určíte řadič a router pak hledá metody na řadiči, nikoli na sobě. Ovladače ve skutečnosti nejsou poskytovány, protože nepotřebují nic zvláštního. Musí to být pouze objekty s funkcemi, které odpovídají názvům zpětných volání směrovačů.
- Agregátor událostí: Jeden z nich je automaticky připojen k aplikaci na
app.vent
a umožňuje vám sledovat události v rámci celé aplikace. Můžete to použít k tomu, aby byla vaše aplikace více oddělená. Namísto toho, aby komponenty mluvily přímo mezi sebou, mohou jen naslouchat globálním událostem. Ale stejně jako všechny komponenty, můžete je vzít nebo nechat být... nebo je použít jiným způsobem, než je uvedeno.
Existuje několik dalších komponent, ale většina z nich se používá spíše na pozadí, i když je možné je použít explicitně. Právě jsem zmínil komponenty, které lidé s největší pravděpodobností používají. V budoucnu si některé z nich projdu, pravděpodobně ve videích, jako jsou ty Backbone, a naučím vás o nich podrobněji.
Prozatím se však můžete podívat na tyto webové stránky a články, kde se dozvíte více:
- MarionetteJS GitHub Repo
- Domovská stránka MarionetteJS
- Dokumentace MarionetteJS
- Vývoj aplikací Backbone.js Kapitola 8 pojednává o používání marionet
Pravděpodobně bych začal tím, že bych si přečetl odkaz Developing Backbone.js Applications a poté přešel k oficiálnímu rozhraní API, abyste měli trochu kontextu, než se pokusíte vstoupit do dokumentů API a interpretovat je. V předchozím článku jsem se zmínil o použití LayoutManager, ale tento zvládá jeho hlavní funkce trochu jednodušším způsobem a přidává mnohem více.
Líbí se mi myšlenka AppRouteru a ovladačů, kterou Marionette používá, ale myslím, že to můžeme udělat ještě o krok dále a eliminovat dokonce nutnost nastavování směrovačů. Myslím, že knihovna BackboneMVC to zvládá krásně. Možná o tom časem také napíšu příspěvek.