MarionetteJS:Lepší páteřní aplikace

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é.

  1. 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é napsat beforeRender nebo onRender 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.
  2. 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.
  3. 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čů.
  4. 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.