why i left angular for react - sdd conference · react hey courseaction, someone clicked this...

121
@housecor Why I Left Angular for React Cory House

Upload: others

Post on 30-May-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

@housecor

Why I Left Angular for ReactCory House

Page 2: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 3: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 4: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 5: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 6: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 7: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Strong opinions. Weakly held.

Page 8: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

They call it React for a reason.

Page 9: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 10: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 11: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 12: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 13: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 14: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

A World of Components

Page 15: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation creates polarizing views…

Page 16: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

HTML should be a projection of app state, not a source of truth.

Page 17: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

JavaScript and HTML belong in the same file.

Page 18: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Unidirectional flow > two-way binding.

Page 19: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Inline styles are good. WTF?

Page 20: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

All Variables Should be Global.

Page 21: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

I don’t want to be a long-winded preacher.

Page 22: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

JSX

Virtual DOM

Hot Reloading

Isomorphic JavaScript

Unidirectional Data flows / Flux / Redux

React versus the competition

Pick Your Sermon.

Page 23: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Let’s Talk Tech

Page 24: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Core Technologies

Page 25: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #1: JSX

Page 26: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 27: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 28: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 29: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

“HTML” in JavaScript

Compiles to JavaScript

Differences: className, htmlFor

Optional

JSX

Page 30: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

React.createElement("h1", {color: "red"}, "Heading here")

<h1 color="red">Heading here</h1>

JSX Compiles to JS

Page 31: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 32: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

“JS” in HTML

<div ng-repeat="user in users">

{{#each user in users}}

data-bind="foreach: users">

“HTML” in JS

{users.map(createUserRow)}

Page 33: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 34: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Must stay in sync.

No explicit interface!

Page 35: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Separating intertwined concerns hinders debugging

Page 36: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

ngIf

ngFor

{{myVar}}

ngModel="myVar"

<li (click)="onSelect(user)">

<avatar [email]=”email"></avatar>

if

map

{myVar}

{myVar}

<li onClick={this.onSelect}></li>

<avatar email={email}></avatar>

Page 37: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Syntax is kind of a big deal.

Loud mouth dude talking to you right now

Page 38: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

To read Angular:

To read React:

Learn a long list of Angular-specific syntax.

Learn JavaScript.

Page 39: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

In Angular, you write Angular.

In React, you write JavaScript.

Page 40: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

import {Component} from 'angular2/core';

import {HeroDetailComponent} from './hero-

detail.component';

@Component({

selector: 'my-app',

directives: [HeroDetailComponent],

template: `

<div>

<h1>Calling Child Component Example</h1>

<my-hero-detail [hero]="selectedHero"></my-

hero-detail>

</div>

`

Use child component:

1. Import

2. Directives array

3. Template

Huh?! Why the mismatch?

Page 41: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

import {React} from ’react';

import {HeroDetail} from './HeroDetail';

export class HeroApp extends React.Component {

render({

<div>

<h1>Calling Child Component Example</h1>

<HeroDetail hero="selectedHero” />

</div>

});

};

Use child component:

1. Import

2. Add Tag

Page 42: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Let’s compare the debugging experience…

Page 43: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Forgot to close a tag in my Angular template...

Page 44: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 45: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Hunt for this to find your typo: [ERROR

->]

Page 46: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Compile-time error checking FTW!

Page 47: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Fails at runtime.

No line number provided.

No unclosed tag mentioned.

Fails at compile-time.

Line number provided.

Unclosed tag mentioned.

Page 48: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 49: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

JSX Demo

Page 50: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #2: Virtual DOM

Page 51: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 52: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Updating the DOM is expensive

Why Virtual DOM?

Page 53: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Compare DOM’s current state to

desired new state.

Update the DOM in the most

efficient way.

With Virtual DOM

Blindly update DOM using new

state.

Without Virtual DOM

The Virtual DOM

Page 54: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Removing a Row…

Redraws entire table Removes the row

Page 55: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Hard to argue with the results…

Page 56: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Performance

Page 57: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Performance

Page 58: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 59: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

shouldComponentUpdate

PureRenderMixin + immutability

Performance: Go Even Faster

Page 60: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Meh, my app is fast enough.

Page 61: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Half second delay -> 20% drop in traffic.

Delayed in increments of 100

milliseconds

Even very small delays resulted in

substantial drops in revenue.

Page 62: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 63: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Synthetic Events

Isomorphic Support

React Native

Virtual DOM: More Than Performance

Page 64: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #3: Hot Reload

Page 65: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

No more lost state!

Hot Reload

Page 67: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Hot Reload Demo

Page 68: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #4: Isomorphic

Page 69: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Today

Isomorphic

2010

Fat Client

1998

Fat Server

History of Web Dev

Page 70: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

What’s In a Name?

I’m doing

server-

rendered

SPAs

Uh, you’re

both doing

the same

thing.

I’m doing

Isomorphic

JavaScript

Page 71: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Isomorphic

Page 72: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

FastBoot (EmberJS)

Portable JavaScript

Universal JavaScript

Progressive JavaScript

Client-Server JavaScript

Multiplatform JavaScript

End-to-end JavaScript

Server-rendered SPA

Samesies.js

Fronty-backy JS

JS on server & client

What’s In a Name?

Okay, we’re both doing

Isomorphic JavaScript.

But you may hear

these other terms.

Page 73: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

HAML

Razor

Django

Jade

Handlebars

Knockout

Angular

KendoUI

Server Client

Page 74: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Server Client

Page 75: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

renderToString

Page 76: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Templates

Security

Routing

Models and validation

Configuration

API calls

Date & Currency Formatting

What Is Duplicated?

Page 77: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Fast interactions

Rich transitions

Uses less bandwidth

Avoids full page loads

Client

Less load on the client

Faster initial render

SEO optimized

Server

Client vs Server

Isomorphic = Benefits of both

Page 78: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

MaintainabilityAccessibilityPerformance

Why Go Isomorphic?

Page 79: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 80: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #5: Small, Stable Component API

Page 81: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Small, stable API leads to…

No “Angular 2” problem

Over 20k React components at Facebook

Massive component ecosystem

Find a component? It’ll work!

Page 82: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

material-ui.com

Page 83: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

react-toolbox.com

Page 84: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

react-bootstrap.github.io

Page 85: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

react.foundation

Page 86: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

blueprintjs.com

Page 87: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

ant.design

Page 88: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

react.semantic-ui.com

Page 89: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

grommet.github.io

Page 90: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

elemental-ui.com

Page 91: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

ux.mulesoft.com

Page 92: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

nikgraf.github.io/belle

Page 93: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

touchstonejs.io

Page 94: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

github.com/enaqx/awesome-react

Page 95: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #6: Lightweight clones

Page 96: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 97: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 98: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Innovation #7: Unidirectional Flow

Page 99: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Good Luck Debugging This

Page 100: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Two-way binding

Two-way Binding vs Unidirectional

React

View

Action

Dispatcher

Store

Unidrectional

View

Viewmodel

Page 101: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

What is Flux?

A pattern, not a framework

Centralized dispatcher

Unidirectional data flows

Page 102: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

They call it Flux for a reason too.

Page 103: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Flux Implementations

Facebook’s Flux

Alt

Flummox

Marty

Fluxxor

Delorean

Reflux

Yahoo’s Fluxible

Page 104: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Flux: 3 Parts

Action Dispatcher Stores

Button click Notify everyone who cares Hold data

Page 105: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the
Page 106: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Flux Demo

Page 107: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

React Hey CourseAction, someone clicked this “Save Course” button.

Action Thanks React! I registered an action creator with the dispatcher, so the dispatcher should take care of notifying all the stores that care.

Dispatcher Let me see who cares about a course being saved. Ah! Looks like the CourseStore has registered a callback with me, so I’ll let her know.

Store Hi dispatcher! Thanks for the update! I’ll update my data with the payload you sent. Then I’ll emit an event for the React components that care.

React Ooo! Shiny new data from the store! I’ll update the UI to reflect this!

A Chat With Flux

Page 108: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Flux is a pattern for unidirectional data flows

Many implementations

Wrap Up

Page 109: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Some Final Thoughts…

Page 110: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Battle Proven

Page 111: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

The Competition Responded

Page 112: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Ember 2Angular 2 React 15

Isomorphic & Unidirectional

Page 113: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Angular 1 Angular 2 React

Isomorphic x x

Unidirectional x x

1 file per

component

x x

Virtual DOM x x

Hot Reloading x

Pluggable x

JavaScript-centric x

Component Syntax 4 6 10

Page 114: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Why React?

Fast

Pluggable

Simple

Testable

Rich Error Messaging

Composable

Broad Browser Support

Isomorphic Friendly

Battle Proven

Page 115: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

React Downside

Page 116: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

My solution…

Page 117: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

github.com/coryhouse/react-slingshot

Page 118: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

@housecor

There’s much more to be said...

Page 119: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

bitnative.com/handouts

Page 120: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

Invitation: 5 Minute Retrospective

Page 121: Why I Left Angular for React - SDD Conference · React Hey CourseAction, someone clicked this “Save Course” button. Action Thanks React! I registered an action creator with the

@housecor