SlideShare a Scribd company logo
REACT FUNDAMENTALS
JAKARTA JS
Simon Sturmer
: @sstur_
CTO / Fouder - KodeFox
WHY REACT?
Part One
WHAT IS REACT?
▸ So you've heard the hype, but what is React?
▸ React is an opinionated View library.
▸ It is a fundamentally different way to build UIs.
▸ It leads to thinking in terms of pure functions and
immutability and other good practices.
WHY REACT?
▸ Why are so many top companies choosing React?
▸ Netflix, Yahoo, Apple, AirBnB, WhatsApp, CloudFlare,
Dropbox, Instagram, Twitter, Uber, WordPress even
SaleStock Indonesia
▸ Performance, Testability, Code Reuse
▸ Developer Experience.
WHY REACT?
▸ How is React different from Angular/Ember/etc?
▸ Everything is a component.
▸ A component is a pure function of application state.
▸ Components can be reused, composed to create other
components, isolated for testing.
▸ UI is easy to reason about as state changes over time.
REACT IS A BUSINESS
DECISION, NOT JUST A
TECHNOLOGY CHOICE!
REACT AS A BUSINESS DECISION
▸ Fewer, more versatile software engineers!
▸ Same dev team! Web, iOS, Android, Desktop
▸ Improved Testability, Reliability
▸ Performant by Default
▸ Real Code Reuse
▸ Velocity: shorten the edit-reload cycle; less time debugging
▸ Future proof: As your software evolves, replace individual
components.
WHY BUSINESSES STILL CHOOSE ANGULAR/EMBER?
▸ New tech can be overwhelming. Where to start?
▸ How to train your dev team?
▸ Some have large, legacy code-bases with a lot of
resources invested.
HOW IS REACT
DIFFERENT?
Part Two
WHAT PROBLEM DOES REACT TRY TO SOLVE?
▸ App state changing over time is hard to reason about.
▸ UI components get out of sync with each other and it's
hard to debug.
▸ When changes happen, we have to reach deep into our
view and mutate objects.
SHARED MUTABLE STATE IS
THE ROOT OF ALL EVIL
Pete Hunt, React.js Conf 2015
REACT + REDUX GIVES YOU IMMUTABLE STATE
REMEMBER THE OLD DAYS?
▸ Server-side Rendering
▸ Generating HTML views was easy!
▸ Why? … because we had the full application state at
one moment in time (a snapshot)
▸ All we have to do is query stuff and generate HTML
from that stuff.
▸ When an action happens, re-generate the entire view!
SERVER-SIDE RENDERING
SPRINKLING JS ON TOP
▸ Web apps slowly started doing more client-side
▸ DOM Manipulation: jQuery
▸ Client-side templating: mustache, handlebars
▸ Must wire-up events every time you generate new DOM
▸ Still need to manipulate the DOM!
EVENTS UPDATING VIEW
THE PROBLEM:
▸ There's way too much complexity around keeping your
app in a consistent state.
▸ It's almost impossible to reason about.
▸ The bookkeeping makes for a poor developer experience.
THE SOLUTION:
▸ We never had that problem with server-side rendering!
▸ … because we just re-generated the entire view when a
piece of state changed (url change).
▸ Can we do the same thing client-side?
CLIENT-SIDE FULL RE-RENDER
React Fundamentals - Jakarta JS, Apr 2016
EVENTS UPDATING STATE
THAT'S EXACTLY
HOW REACT WORKS.
VIEW IS A FUNCTION OF STATE:
▸ This means you can reason about your view just like you
used to do with server-generated views.
▸ Your view is a deterministic function of your state.

(the same state will always produce the same view)
▸ Even if you serialize that state, save it to disk and restore it
next week.
MORE EXCELLENT

THINGS WILL FOLLOW
Once you start down this path…
YOU START DISCOVERING BONUS STUFF LIKE:
▸ Trivial undo/redo
▸ Easy hot-reloading during development
▸ Atomic/Optimistic updates
▸ Imagine if an HTTP request fails, you just load a
previously stable state
▸ Time-travel debugging
▸ Imagine stepping back in time through your app state
LET'S LOOK AT

SOME REACT CODE…
REACT VERSION OF PREVIOUS EXAMPLE
EVENTS JUST UPDATE STATE!
…but there are
<div>s in your JS!
IN REALITY IT WILL LOOK MORE LIKE THIS:
REACT ELEMENTS
▸ That stuff is JSX and it’s really incredible
▸ It looks weird at first, but it is just [optional] sugar.
▸ JSX:
▸ Concise Syntax
▸ Static code analysis
▸ Directly compiles to JS
COMPOSITION OF COMPONENTS
▸ You build view components from other view components
▸ This is extremely powerful.
▸ Benefits:
▸ Code Reuse
▸ Separation of Concerns
▸ Clean layers of abstraction
React leaves it up to you to
separate concerns however
you like.
MOST PEOPLE HAVE:
▸ Presentational components:
▸ Purely for layout/styling
▸ CSS designers can work on these
▸ Container components:
▸ Know about data structure and logic
▸ Don’t know anything about layout/styling
So what's the price
you pay for using React?
REACT DRAWBACKS:
▸ Some setup complexity. Choices can be overwhelming.
▸ A moderate learning curve
▸ React will change the way you think about your UI. This
takes some getting used to.
▸ Rapidly evolving ecosystem.
VASTLY OUTWEIGHS THE
COST.
But what you get in return…
DEVELOPER EXPERIENCE
▸ Move fast: shorten the edit-reload cycle; spend less time
debugging
▸ Write testable code!
▸ Iterate with confidence and build more reliable
software.
▸ Learn once, write anywhere
▸ Web, iOS, Android, Mac/Windows, even console apps
: @sstur_
https://kodefox.com
Simon Sturmer
Thanks!

More Related Content

PDF
React Walk-Thru - Santa Cruz JS, May 2015
PDF
Learning React - I
PDF
Introduction to ReactJS
PDF
Breaking the Server-Client Divide with Node.js and React
PPTX
A Brief Introduction to React.js
PDF
React.js in real world apps.
PPTX
ReactJS.NET - Fast and Scalable Single Page Applications
PDF
Robust web apps with React.js
React Walk-Thru - Santa Cruz JS, May 2015
Learning React - I
Introduction to ReactJS
Breaking the Server-Client Divide with Node.js and React
A Brief Introduction to React.js
React.js in real world apps.
ReactJS.NET - Fast and Scalable Single Page Applications
Robust web apps with React.js

What's hot (20)

PDF
How to Redux
PPTX
Introduction to react_js
PPTX
Reactjs
PDF
Introduction to react
PPTX
Getting started with Redux js
PPT
React js
PDF
Best Practice-React
PPT
Starting with Reactjs
PPSX
React introduction
PDF
PPTX
Reactjs workshop
PPTX
React js Online Training
PDF
React JS - Introduction
PDF
An introduction to React.js
PDF
JOSA TechTalks - Better Web Apps with React and Redux
PPTX
Its time to React.js
PDF
Understanding Facebook's React.js
PDF
Building Modern Web Applications using React and Redux
PPTX
React JS: A Secret Preview
PPTX
React js Rahil Memon
How to Redux
Introduction to react_js
Reactjs
Introduction to react
Getting started with Redux js
React js
Best Practice-React
Starting with Reactjs
React introduction
Reactjs workshop
React js Online Training
React JS - Introduction
An introduction to React.js
JOSA TechTalks - Better Web Apps with React and Redux
Its time to React.js
Understanding Facebook's React.js
Building Modern Web Applications using React and Redux
React JS: A Secret Preview
React js Rahil Memon
Ad

Viewers also liked (18)

PDF
BWD Apr 2012 - Disruptive innovation
PPTX
The disaster of mutable state
PPTX
Teaching old java script new tricks
PDF
APPSCoast Pitch Deck
PDF
Mobile Programming - Network Universitas Budi Luhur
PDF
Meteor Talk At TokoPedia
PPTX
Sony lazuardi native mobile app with javascript
PDF
Building Scalable, Highly Concurrent & Fault Tolerant Systems - Lessons Learned
PDF
Muhammad azamuddin introduction-to-reactjs
PDF
Fellow Developers, Let's Discover Your Superpower
PDF
Styling Your React App
PDF
Mobile Programming - 3 UDP
PDF
Serverless NodeJS With AWS Lambda
PDF
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
PPTX
Basic Operating System
PDF
React Webinar With CodePolitan
PDF
Team 101: How to Build The A Team For Your Startup
PDF
reveal.js 3.0.0
BWD Apr 2012 - Disruptive innovation
The disaster of mutable state
Teaching old java script new tricks
APPSCoast Pitch Deck
Mobile Programming - Network Universitas Budi Luhur
Meteor Talk At TokoPedia
Sony lazuardi native mobile app with javascript
Building Scalable, Highly Concurrent & Fault Tolerant Systems - Lessons Learned
Muhammad azamuddin introduction-to-reactjs
Fellow Developers, Let's Discover Your Superpower
Styling Your React App
Mobile Programming - 3 UDP
Serverless NodeJS With AWS Lambda
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
Basic Operating System
React Webinar With CodePolitan
Team 101: How to Build The A Team For Your Startup
reveal.js 3.0.0
Ad

Similar to React Fundamentals - Jakarta JS, Apr 2016 (20)

PPTX
theory-slides-for react for beginners.pptx
PDF
Welcome to React & Flux !
PPTX
Reactjs notes.pptx for web development- tutorial and theory
PDF
theory-slides-vueh3urh4ur4ur4r44oirj4riu4ri
PPTX
React.js at Cortex
PPTX
React js
PPTX
React js for beginners
DOCX
Skill practical javascript diy projects
PDF
Tech Talk on ReactJS
PPSX
REACTJS1.ppsx
PDF
FRONTEND DEVELOPMENT WITH REACT.JS
PDF
React in Action ( PDFDrive ).pdf
PPTX
001. Introduction about React
PPTX
ReactJS Code Impact
PPTX
react js training|react js training in mumbai|React js classes in mumbai
PPTX
PPTX
What is ReactJS?
PDF
Review on React JS
PPTX
React JS - A quick introduction tutorial
PPTX
reactJS
theory-slides-for react for beginners.pptx
Welcome to React & Flux !
Reactjs notes.pptx for web development- tutorial and theory
theory-slides-vueh3urh4ur4ur4r44oirj4riu4ri
React.js at Cortex
React js
React js for beginners
Skill practical javascript diy projects
Tech Talk on ReactJS
REACTJS1.ppsx
FRONTEND DEVELOPMENT WITH REACT.JS
React in Action ( PDFDrive ).pdf
001. Introduction about React
ReactJS Code Impact
react js training|react js training in mumbai|React js classes in mumbai
What is ReactJS?
Review on React JS
React JS - A quick introduction tutorial
reactJS

Recently uploaded (20)

PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Empathic Computing: Creating Shared Understanding
PDF
Approach and Philosophy of On baking technology
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Tartificialntelligence_presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
cuic standard and advanced reporting.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
Group 1 Presentation -Planning and Decision Making .pptx
Assigned Numbers - 2025 - Bluetooth® Document
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Dropbox Q2 2025 Financial Results & Investor Presentation
Programs and apps: productivity, graphics, security and other tools
Empathic Computing: Creating Shared Understanding
Approach and Philosophy of On baking technology
MYSQL Presentation for SQL database connectivity
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Tartificialntelligence_presentation.pptx
Machine learning based COVID-19 study performance prediction
Big Data Technologies - Introduction.pptx
Spectroscopy.pptx food analysis technology
cuic standard and advanced reporting.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Mobile App Security Testing_ A Comprehensive Guide.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Spectral efficient network and resource selection model in 5G networks

React Fundamentals - Jakarta JS, Apr 2016

  • 2. Simon Sturmer : @sstur_ CTO / Fouder - KodeFox
  • 4. WHAT IS REACT? ▸ So you've heard the hype, but what is React? ▸ React is an opinionated View library. ▸ It is a fundamentally different way to build UIs. ▸ It leads to thinking in terms of pure functions and immutability and other good practices.
  • 5. WHY REACT? ▸ Why are so many top companies choosing React? ▸ Netflix, Yahoo, Apple, AirBnB, WhatsApp, CloudFlare, Dropbox, Instagram, Twitter, Uber, WordPress even SaleStock Indonesia ▸ Performance, Testability, Code Reuse ▸ Developer Experience.
  • 6. WHY REACT? ▸ How is React different from Angular/Ember/etc? ▸ Everything is a component. ▸ A component is a pure function of application state. ▸ Components can be reused, composed to create other components, isolated for testing. ▸ UI is easy to reason about as state changes over time.
  • 7. REACT IS A BUSINESS DECISION, NOT JUST A TECHNOLOGY CHOICE!
  • 8. REACT AS A BUSINESS DECISION ▸ Fewer, more versatile software engineers! ▸ Same dev team! Web, iOS, Android, Desktop ▸ Improved Testability, Reliability ▸ Performant by Default ▸ Real Code Reuse ▸ Velocity: shorten the edit-reload cycle; less time debugging ▸ Future proof: As your software evolves, replace individual components.
  • 9. WHY BUSINESSES STILL CHOOSE ANGULAR/EMBER? ▸ New tech can be overwhelming. Where to start? ▸ How to train your dev team? ▸ Some have large, legacy code-bases with a lot of resources invested.
  • 11. WHAT PROBLEM DOES REACT TRY TO SOLVE? ▸ App state changing over time is hard to reason about. ▸ UI components get out of sync with each other and it's hard to debug. ▸ When changes happen, we have to reach deep into our view and mutate objects.
  • 12. SHARED MUTABLE STATE IS THE ROOT OF ALL EVIL Pete Hunt, React.js Conf 2015 REACT + REDUX GIVES YOU IMMUTABLE STATE
  • 13. REMEMBER THE OLD DAYS? ▸ Server-side Rendering ▸ Generating HTML views was easy! ▸ Why? … because we had the full application state at one moment in time (a snapshot) ▸ All we have to do is query stuff and generate HTML from that stuff. ▸ When an action happens, re-generate the entire view!
  • 15. SPRINKLING JS ON TOP ▸ Web apps slowly started doing more client-side ▸ DOM Manipulation: jQuery ▸ Client-side templating: mustache, handlebars ▸ Must wire-up events every time you generate new DOM ▸ Still need to manipulate the DOM!
  • 17. THE PROBLEM: ▸ There's way too much complexity around keeping your app in a consistent state. ▸ It's almost impossible to reason about. ▸ The bookkeeping makes for a poor developer experience.
  • 18. THE SOLUTION: ▸ We never had that problem with server-side rendering! ▸ … because we just re-generated the entire view when a piece of state changed (url change). ▸ Can we do the same thing client-side?
  • 23. VIEW IS A FUNCTION OF STATE: ▸ This means you can reason about your view just like you used to do with server-generated views. ▸ Your view is a deterministic function of your state.
 (the same state will always produce the same view) ▸ Even if you serialize that state, save it to disk and restore it next week.
  • 24. MORE EXCELLENT
 THINGS WILL FOLLOW Once you start down this path…
  • 25. YOU START DISCOVERING BONUS STUFF LIKE: ▸ Trivial undo/redo ▸ Easy hot-reloading during development ▸ Atomic/Optimistic updates ▸ Imagine if an HTTP request fails, you just load a previously stable state ▸ Time-travel debugging ▸ Imagine stepping back in time through your app state
  • 26. LET'S LOOK AT
 SOME REACT CODE…
  • 27. REACT VERSION OF PREVIOUS EXAMPLE
  • 29. …but there are <div>s in your JS!
  • 30. IN REALITY IT WILL LOOK MORE LIKE THIS:
  • 31. REACT ELEMENTS ▸ That stuff is JSX and it’s really incredible ▸ It looks weird at first, but it is just [optional] sugar. ▸ JSX: ▸ Concise Syntax ▸ Static code analysis ▸ Directly compiles to JS
  • 32. COMPOSITION OF COMPONENTS ▸ You build view components from other view components ▸ This is extremely powerful. ▸ Benefits: ▸ Code Reuse ▸ Separation of Concerns ▸ Clean layers of abstraction
  • 33. React leaves it up to you to separate concerns however you like.
  • 34. MOST PEOPLE HAVE: ▸ Presentational components: ▸ Purely for layout/styling ▸ CSS designers can work on these ▸ Container components: ▸ Know about data structure and logic ▸ Don’t know anything about layout/styling
  • 35. So what's the price you pay for using React?
  • 36. REACT DRAWBACKS: ▸ Some setup complexity. Choices can be overwhelming. ▸ A moderate learning curve ▸ React will change the way you think about your UI. This takes some getting used to. ▸ Rapidly evolving ecosystem.
  • 37. VASTLY OUTWEIGHS THE COST. But what you get in return…
  • 38. DEVELOPER EXPERIENCE ▸ Move fast: shorten the edit-reload cycle; spend less time debugging ▸ Write testable code! ▸ Iterate with confidence and build more reliable software. ▸ Learn once, write anywhere ▸ Web, iOS, Android, Mac/Windows, even console apps