Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Reagent: ClojureScript <3 React

Reagent: ClojureScript <3 React

[Czech] Slidy k talku o Reagentu, ClojureScript knihovně pro tvorbu webových rozhraní postavené nad knihovnou React od Facebooku. Slidy představují základy filosofie Reactu.

Daniel Kvasnička

March 24, 2014
Tweet

More Decks by Daniel Kvasnička

Other Decks in Programming

Transcript

  1. ! /** @jsx React.DOM */ var TodoList = React.createClass({ render:

    function() { var createItem = function(itemText) { return <li>{itemText}</li>; }; return <ul>{this.props.items.map(createItem)}</ul>; } });
  2. ! /** @jsx React.DOM */ var render: var createItem =

    }; } }); Markup? A logika? Něco jako PHP?! Back to 1990s?! WTF!
  3. A teď vážně… • Separation of Concerns / Separace zájmů

    • Volná vazba mezi silně kohezivními komponentami
  4. A teď vážně… • Separation of Concerns / Separace zájmů

    • Volná vazba mezi silně kohezivními komponentami • Přináší šablony separací zájmů? Je mezi šablonou a zobrazovací logikou volná vazba?
  5. A teď vážně… • Separation of Concerns / Separace zájmů

    • Volná vazba mezi silně kohezivními komponentami • Přináší šablony separací zájmů? Je mezi šablonou a zobrazovací logikou volná vazba? • Implicitní těsná vazba. V principu podobná situace jako u takzvaně “bezschémových” DB
  6. A teď vážně… • Separation of Concerns / Separace zájmů

    • Volná vazba mezi silně kohezivními komponentami • Přináší šablony separací zájmů? Je mezi šablonou a zobrazovací logikou volná vazba? • Implicitní těsná vazba. V principu podobná situace jako u takzvaně “bezschémových” DB • Separace TECHNOLOGIÍ, ne zájmů
  7. Co na to React? • Jednoduše testovatelné autonomní komponenty •

    Neměnná data a jednosměrný data binding • Jednodušší dosáhnout referenční transparentnosti • Virtuální DOM: renderování celé aplikace při změně dat, určení minimálního souboru nutných manipulací s DOMem - heuristika, O(n) • Manipulace s DOMem jsou nejdražší! • Spolupráce s kodérem? JSX