SlideShare a Scribd company logo
1 of 20
Download to read offline
React, Flux, and Realtime RSVPs
April 18, 2016 - KnoxJS
Alex Klibisz
Thanks to...
Alex Klibisz (Kleebeesh)
- Senior at UT, Computer Science
- Web development background
- Node.js, Angular, Knockout, jQuery, Cordova, since late 2014.
- Started using React September 2015.
Contents
1. React
2. Flux
3. What are we building?
4. Why React?
5. Strategy
6. Build it!
React
- Library for component-based views
- Rendering, updating, handling interactions in components
- Often used with multiple other tools
React (example)
Component is given props
Component declares what
to display
React renders component
Component re-rendered
automatically on changes.
● Simon
● Alvin
● Theo
● Sam
● Alex
● Chris
Why’s that helpful
1. Treat components as functions.
2. Re-use and compose components.
3. Render to a virtual DOM, React applies minimal change to real DOM.
4. Node.js-style modules and npm for dependencies.
5. Render on the server (good for SEO, social sharing, etc.)
Flux
- Pattern for maintaining data in your app
- Many implementations (Alt, Redux, Reflux, etc.)
- Stores: store the data
- Actions: update the data
- Components: subscribe to updates
Flux (example)
UserStore.users = [“Simon”, “Alvin”, “Theo”]
UserList UserAddUserGallery
UserActions.addUser(“Alex”)
UserActions.addUser(“Sam”)
Stores contain shared data.
Components subscribe to
stores.
Components update stores via
actions.
Why’s that helpful
1. Source of truth for your application’s state.
2. Easy to sync data across components.
Confusion is Normal
1. Build systems (Webpack, Browserify, etc.)
2. ES6, ES7 is the norm
3. Careful with “boilerplates” and “starter projects”
4. Plenty of online banter
What are we building?
- Real-time RSVPs from Meetup.com over a websocket.
- Bar charts using NVD3
- World map with pins using Leaflet
Why React and Flux?
1. Re-usable components
2. Re-rendering in real-time
3. Single source of data, multiple components
Dashboard
Strategy: Component Structure
MapViz
ChartViz
ChartViz
ChartViz
Footer
Header
Strategy: Component APIs
Strategy: Data Flow
Meetup.com
RSVP API
socket.onmessage = MeetupActions.addRSVP
websocket
MeetupStore.onAddRSVP
RSVP
RSVP
Dashboard
MapViz ChartViz (x3) Footer
RSVPRSVPRSVPVP
count countries last names states
Subscribe to updates
Code time...
VoteForAlex.xyz
1. Exploring AWS Lambda and Serverless Architectures
2. Firebase: architecting beyond the chat app
Thanks to...
React, Flux, and Realtime RSVPs
Slides and code @ alex.klibisz.com
tw: @alexklibisz email: aklibisz@gmail.com

More Related Content

What's hot

What's hot (20)

Loki: An Opensource Zipkin/Prometheus Mashup written in Go.
Loki: An Opensource Zipkin/Prometheus Mashup written in Go.Loki: An Opensource Zipkin/Prometheus Mashup written in Go.
Loki: An Opensource Zipkin/Prometheus Mashup written in Go.
 
Reative UI
Reative UIReative UI
Reative UI
 
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> KubernetesJJUG CCC 2018 : Lessons Learned: Spring Cloud ->  Docker -> Kubernetes
JJUG CCC 2018 : Lessons Learned: Spring Cloud -> Docker -> Kubernetes
 
SFScon19 - Luca Romano Simone Vianello - ORM and RDBMS, how to make them work...
SFScon19 - Luca Romano Simone Vianello - ORM and RDBMS, how to make them work...SFScon19 - Luca Romano Simone Vianello - ORM and RDBMS, how to make them work...
SFScon19 - Luca Romano Simone Vianello - ORM and RDBMS, how to make them work...
 
Mistral Hong Kong Unconference track
Mistral Hong Kong Unconference trackMistral Hong Kong Unconference track
Mistral Hong Kong Unconference track
 
gRPC @ Weaveworks
gRPC @ WeaveworksgRPC @ Weaveworks
gRPC @ Weaveworks
 
Datadog- Monitoring In Motion
Datadog- Monitoring In Motion Datadog- Monitoring In Motion
Datadog- Monitoring In Motion
 
Cloud Native Java in Kubernetes
Cloud Native Java in KubernetesCloud Native Java in Kubernetes
Cloud Native Java in Kubernetes
 
Quick, resilient and auto scaling cluster with Senlin [Meetup #21 - 03]
Quick, resilient and auto scaling cluster with Senlin [Meetup #21 - 03]Quick, resilient and auto scaling cluster with Senlin [Meetup #21 - 03]
Quick, resilient and auto scaling cluster with Senlin [Meetup #21 - 03]
 
Handle insane devices traffic using Google Cloud Platform - Andrea Ulisse - C...
Handle insane devices traffic using Google Cloud Platform - Andrea Ulisse - C...Handle insane devices traffic using Google Cloud Platform - Andrea Ulisse - C...
Handle insane devices traffic using Google Cloud Platform - Andrea Ulisse - C...
 
Alexandra johnson reducing operational barriers to model training
Alexandra johnson   reducing operational barriers to model trainingAlexandra johnson   reducing operational barriers to model training
Alexandra johnson reducing operational barriers to model training
 
[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017
[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017
[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017
 
Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)Performance and Scale: Billions of request per day (DDD2019)
Performance and Scale: Billions of request per day (DDD2019)
 
Exploring Serverless Architectures: AWS Lambda
Exploring Serverless Architectures: AWS LambdaExploring Serverless Architectures: AWS Lambda
Exploring Serverless Architectures: AWS Lambda
 
FaaS-and-Furious
FaaS-and-FuriousFaaS-and-Furious
FaaS-and-Furious
 
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
AWS Community Day Bangkok 2019 - How AWS Parallel Cluster can accelerate high...
 
Mistral Atlanta design session
Mistral Atlanta design sessionMistral Atlanta design session
Mistral Atlanta design session
 
[Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"![Codemash] Caching Made "Bootiful"!
[Codemash] Caching Made "Bootiful"!
 
AWS CodeDeploy - basic intro
AWS CodeDeploy - basic introAWS CodeDeploy - basic intro
AWS CodeDeploy - basic intro
 
Ppt World Wide Web
Ppt World Wide WebPpt World Wide Web
Ppt World Wide Web
 

Similar to React, Flux, and Realtime RSVPs

Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
Rob Davarnia
 

Similar to React, Flux, and Realtime RSVPs (20)

Plone FSR
Plone FSRPlone FSR
Plone FSR
 
Comparing Angular and React JS for SPAs
Comparing Angular and React JS for SPAsComparing Angular and React JS for SPAs
Comparing Angular and React JS for SPAs
 
Beginning MEAN Stack
Beginning MEAN StackBeginning MEAN Stack
Beginning MEAN Stack
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
 
Angular js workshop
Angular js workshopAngular js workshop
Angular js workshop
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
 
Reactjs
ReactjsReactjs
Reactjs
 
Progressive Web Apps and React
Progressive Web Apps and ReactProgressive Web Apps and React
Progressive Web Apps and React
 
Cytoscape: Now and Future
Cytoscape: Now and FutureCytoscape: Now and Future
Cytoscape: Now and Future
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
React + Flux = Joy
React + Flux = JoyReact + Flux = Joy
React + Flux = Joy
 
Intro lift
Intro liftIntro lift
Intro lift
 
Onion Architecture with S#arp
Onion Architecture with S#arpOnion Architecture with S#arp
Onion Architecture with S#arp
 
70487.pdf
70487.pdf70487.pdf
70487.pdf
 
ASP.NET Presentation
ASP.NET PresentationASP.NET Presentation
ASP.NET Presentation
 
Presentation1
Presentation1Presentation1
Presentation1
 
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...Дмитрий Тежельников  «Разработка вэб-решений с использованием Asp.NET.Core и ...
Дмитрий Тежельников «Разработка вэб-решений с использованием Asp.NET.Core и ...
 
React gsg presentation with ryan jung & elias malik
React   gsg presentation with ryan jung & elias malikReact   gsg presentation with ryan jung & elias malik
React gsg presentation with ryan jung & elias malik
 
React JS .NET
React JS .NETReact JS .NET
React JS .NET
 
Rails interview questions
Rails interview questionsRails interview questions
Rails interview questions
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

React, Flux, and Realtime RSVPs

  • 1. React, Flux, and Realtime RSVPs April 18, 2016 - KnoxJS Alex Klibisz
  • 3. Alex Klibisz (Kleebeesh) - Senior at UT, Computer Science - Web development background - Node.js, Angular, Knockout, jQuery, Cordova, since late 2014. - Started using React September 2015.
  • 4. Contents 1. React 2. Flux 3. What are we building? 4. Why React? 5. Strategy 6. Build it!
  • 5. React - Library for component-based views - Rendering, updating, handling interactions in components - Often used with multiple other tools
  • 6. React (example) Component is given props Component declares what to display React renders component Component re-rendered automatically on changes. ● Simon ● Alvin ● Theo ● Sam ● Alex ● Chris
  • 7. Why’s that helpful 1. Treat components as functions. 2. Re-use and compose components. 3. Render to a virtual DOM, React applies minimal change to real DOM. 4. Node.js-style modules and npm for dependencies. 5. Render on the server (good for SEO, social sharing, etc.)
  • 8. Flux - Pattern for maintaining data in your app - Many implementations (Alt, Redux, Reflux, etc.) - Stores: store the data - Actions: update the data - Components: subscribe to updates
  • 9. Flux (example) UserStore.users = [“Simon”, “Alvin”, “Theo”] UserList UserAddUserGallery UserActions.addUser(“Alex”) UserActions.addUser(“Sam”) Stores contain shared data. Components subscribe to stores. Components update stores via actions.
  • 10. Why’s that helpful 1. Source of truth for your application’s state. 2. Easy to sync data across components.
  • 11. Confusion is Normal 1. Build systems (Webpack, Browserify, etc.) 2. ES6, ES7 is the norm 3. Careful with “boilerplates” and “starter projects” 4. Plenty of online banter
  • 12. What are we building? - Real-time RSVPs from Meetup.com over a websocket. - Bar charts using NVD3 - World map with pins using Leaflet
  • 13. Why React and Flux? 1. Re-usable components 2. Re-rendering in real-time 3. Single source of data, multiple components
  • 16. Strategy: Data Flow Meetup.com RSVP API socket.onmessage = MeetupActions.addRSVP websocket MeetupStore.onAddRSVP RSVP RSVP Dashboard MapViz ChartViz (x3) Footer RSVPRSVPRSVPVP count countries last names states Subscribe to updates
  • 18. VoteForAlex.xyz 1. Exploring AWS Lambda and Serverless Architectures 2. Firebase: architecting beyond the chat app
  • 20. React, Flux, and Realtime RSVPs Slides and code @ alex.klibisz.com tw: @alexklibisz email: aklibisz@gmail.com