SOME COMMON PRINCIPLES OF UI DEVELOPMENT @SAMSELIKOFF
STATEANY DATA THAT CAN CHANGE IN OUR APP
STATEANY DATA THAT CAN CHANGE IN OUR APP
$('.panel').click(function() { var body = $('panel-body'); if (body.is(":hidden")) { body.slideDown(); } else { body.slideUp(); } });
MODELS
STATE EXPLICIT UI
SUBSCRIBE AND RE-RENDER
DECLARATIVE RENDERING
<h2> Hello, {{name}}! Here are your messages: </h2>
{{! template.hbs }} {{#if isOpen}} <p>Lorem ipsum dolor</p> {{/if}} render() { return ( <div> {this.props.isOpen
 ? <p>Lorem ipsum dolor</p> : null } </div> ); }
HOW SHOULD WE ORGANIZE OUR APPS?
COMPONENTS
“THINKING IN REACT”
COMPOSITION, SEPARATION, ISOLATION, REUSE
WHERE SHOULD WE STORE OUR STATE?
STATE MANAGEMENT
COMPONENT STATE
STATE HOISTING
STATE HOISTING
STATE HOISTING
STATE HOISTING
STATE MANAGEMENTSINGLE SOURCE OF TRUTH
GLOBAL STATE
SUMMARY
COMMON UI PRINCIPLES ▸ Explicitly identify & store state ▸ Declaratively render your UI from state ▸ Use Components to break up your app ▸ Ensure your data has a single source of truth
THANKS @SAMSELIKOFF

Common UI patterns