SlideShare a Scribd company logo
Better Web Apps with React
& Redux
Improve your web apps with
React
Ali Al-Sa’o
About Me
Ali Hussein Al-Sa’o
Senior Front End Engineer @MBC group
10+ years in web development
alsao ali-sao ali_sao
What is React
React is a UI library developed at Facebook to facilitate the
creation of interactive, stateful & reusable UI components. It is
used at Facebook in production, and Instagram.com is written
entirely in React.
One of it's unique selling points is that not only does it perform on
the client side, but it can also be rendered server side
(Isomorphic).
It also uses a concept called the Virtual DOM that selectively
renders subtrees of nodes based upon state changes. It does the
least amount of DOM manipulation possible in order to keep your
components up to date.
What does it need to make
it work and why
A typical modern React project needs the following to run
productively and successfully
Babel : babel is a javascript transpiler that converts code from
one syntax to another. Mainly responsible for converting JSX and
ES6 into valid ES5 all browsers can understand
Webpack : A javascript bundler and task runner. You can uglify
your code, deploy to live server , import assets as modules , lint
and test your code , compile css preprocessors and tons of other
tasks.
What special about React
Let’s try to clone Facebook messenger using my React
And your old fatty jQuery
React is all about components
With React we can build reusable components that would allow
us to share code all over our project
Components have data
containers
Components can receive data via props.
Components has inner state object.
Data flow is unidirectional.
Data containers are separating concern.
Components have data
containers
Components have
Lifecycle Hooks
Do something at a certain lifecycle time
Mounting hooks :
• componentWillMount()
• render()
• componentDidMount()
Updating hooks :
• componentDidUpdate()
Unmounting
• componentWillUnmount()
What about this
Really , what about this?
React will do the magic for you
With jQuery you have to re-render the whole list
Virtual DOM VS DOM
manipulation
How VDOM works
React is Functional
Do one single thing at a time without side effects
React is super easy to debug
Thanks to React developer tools
React unit testing is heaven
Declarative = Predictable
React is Universal
write once, run anywhere.
React Native
React VR
One more thing…
‫اللي‬‫سرق‬‫القداحه‬‫يرجعها‬
Questions?
Scaling React Apps With
Redux
Omar Abdelhafith
About Me
Omar Abdelhafith
Staff Software Engineer @Zendesk
iOS/Android and Backend
nsomar nsomar @ifnottrue
http://nsomar.com
Recap…
Chat
Component
Messages
Component
Recap…
Recap…
Recap…
Structure
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Structure - State
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Messages
Selected
Main State
Text Field State
Structure - State
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Messages State Chat State
Text Field StateBody State
Header State
Singleton
Other Singleton
Structure - Actions
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Complexity grows with
State
We gonna talk about 3
issues
Issue 1
Scalability
Adding more components
UserInfo
Component
GifChooser
Component
Scaling
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
UserInfo
Component
Gif
Component
Adding more components
Adding more components
Adding GifChooser and UserInfo
- App.js state grows
- App.js action handling grows
Issue 2
Correctness
Updating the state
Chat
Web App
User Typing
Uploading
Images
Web Sockets
Messages
Web Sockets
Status and
updates
Async Http
requests
MQTT
Searching
Gifs
Searching
Gifs
Updating the state
- Real-life applications receive many events
- These events change the state
- Leads to incorrect UI updates
Example
Message Received
Message Updated
Message Deleted
Example - Off Order
Message Received
Message Updated
Message Deleted
Example
Correct Order Of Event Incorrect Order Of Event
Issue 3
Consistence
Consistence
Message Received
Reorder the
users
Add
Message
Here
Maybe
Other???
Issues so far
Scalability
Consistence
Correctness
Facebook tired to solve
these issues
Enter
Unidirectional data flow
architectures
Better web apps with React and Redux
Unidirectional architectures
Two popular architectures
- Flux
- Redux
Unidirectional architectures
Flux
Redux
We will focus on Redux
Redux
Redux - Flow
Redux - Connect
Chat
Component
Messages
Component
Non Redux Structure
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Non Redux Structure
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Redux Store
Our 3 issues
Scalability
Consistence
Correctness
Scalability?
Solved by connecting multiple views to a single
reducer!
Works for Actions and State
Our 3 issues
Scalability
Consistence
Correctness
Our 3 issues
Scalability
Consistence
Correctness
Redux - Action
Actions No Redux
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Actions With Redux
App
Component
Messages
Component
Chat
Component
Header
Component
Body
Component
Controls
Component
Redux Store
Redux - Reducer
Redux
Redux - Reducer
Redux - Reducer
Redux
Our 3 issues
Scalability
Consistence
Correctness
Consistence?
- State is only changed when actions are
dispatched
- Only the Reducer changes the state
- All connected views are notified
Our 3 issues
Scalability
Consistence
Correctness
Our 3 issues
Scalability
Consistence
Correctness
Correctness?
- Only the Reducer changes the state
- The Reduce function CANNOT be called twice
Our 3 issues
Scalability
Consistence
Correctness
Our 3 issues
Scalability
Consistence
Correctness
Almost done!
2 More things
First
Redux focuses on developer tooling and
happiness
Developer Happiness
Developer Happiness
2 More things
Second
Are you a Mobile Developer (iOS/Android)?
2 More things
Second
Are you a Mobile Developer (iOS/Android)?
We Got you covered!!
Suas
Suas also makes
developers happy
Better web apps with React and Redux
Better web apps with React and Redux
Excited? Head to
https://suas.readme.io
To Sum Up
React: State controls the view
Redux: State controls the app
Questions?
Thanks

More Related Content

What's hot (20)

Introduction to react_js
Introduction to react_js
MicroPyramid .
 
Workshop 21: React Router
Workshop 21: React Router
Visual Engineering
 
Introduction to Redux
Introduction to Redux
Ignacio Martín
 
React JS part 1
React JS part 1
Diluka Wittahachchige
 
Understanding react hooks
Understanding react hooks
Maulik Shah
 
Intro to React
Intro to React
Justin Reock
 
React hooks
React hooks
Ramy ElBasyouni
 
React & Redux
React & Redux
Federico Bond
 
WEB DEVELOPMENT USING REACT JS
WEB DEVELOPMENT USING REACT JS
MuthuKumaran Singaravelu
 
React js
React js
Rajesh Kolla
 
Introduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace IT
namespaceit
 
React hooks
React hooks
Assaf Gannon
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorial
Mohammed Fazuluddin
 
Redux workshop
Redux workshop
Imran Sayed
 
React and redux
React and redux
Mystic Coders, LLC
 
Introduction to ReactJS
Introduction to ReactJS
Knoldus Inc.
 
ReactJS
ReactJS
Ram Murat Sharma
 
React JS
React JS
Software Infrastructure
 
React js for beginners
React js for beginners
Alessandro Valenti
 
Introduction to ReactJS
Introduction to ReactJS
Hoang Long
 

Similar to Better web apps with React and Redux (20)

Tech Talk on ReactJS
Tech Talk on ReactJS
Atlogys Technical Consulting
 
Techpaathshala ReactJS .pdf
Techpaathshala ReactJS .pdf
Techpaathshala
 
React gsg presentation with ryan jung & elias malik
React gsg presentation with ryan jung & elias malik
Lama K Banna
 
Welcome to React & Flux !
Welcome to React & Flux !
Ritesh Kumar
 
FRONTEND DEVELOPMENT WITH REACT.JS
FRONTEND DEVELOPMENT WITH REACT.JS
IRJET Journal
 
React Interview Question PDF By ScholarHat
React Interview Question PDF By ScholarHat
Scholarhat
 
How Can the Hermes Engine Help React Native Apps.
How Can the Hermes Engine Help React Native Apps.
Techugo
 
Introduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptx
SHAIKIRFAN715544
 
Introduction to React JS.pptx
Introduction to React JS.pptx
SHAIKIRFAN715544
 
How Can the Hermes Engine Help React Native Apps.docx.pdf
How Can the Hermes Engine Help React Native Apps.docx.pdf
Techugo
 
React DOM/Virtual DOM
React DOM/Virtual DOM
RajasreePothula3
 
Vue Js vs React: Which is the Best JS Technology in 2023
Vue Js vs React: Which is the Best JS Technology in 2023
Aman Mishra
 
React JS Interview Questions PDF By ScholarHat
React JS Interview Questions PDF By ScholarHat
Scholarhat
 
React Native’s New Architecture Decoded: How to Migrate & Benefits?
React Native’s New Architecture Decoded: How to Migrate & Benefits?
jhonmiller20
 
Reactjs notes.pptx for web development- tutorial and theory
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
75waytechnologies
 
React ppt
React ppt
Naresh Thamizharasan
 
reactJS
reactJS
Syam Santhosh
 
Top most React js tools to optimize web app
Top most React js tools to optimize web app
Orange Mantra
 
Fundamental concepts of react js
Fundamental concepts of react js
StephieJohn
 
Techpaathshala ReactJS .pdf
Techpaathshala ReactJS .pdf
Techpaathshala
 
React gsg presentation with ryan jung & elias malik
React gsg presentation with ryan jung & elias malik
Lama K Banna
 
Welcome to React & Flux !
Welcome to React & Flux !
Ritesh Kumar
 
FRONTEND DEVELOPMENT WITH REACT.JS
FRONTEND DEVELOPMENT WITH REACT.JS
IRJET Journal
 
React Interview Question PDF By ScholarHat
React Interview Question PDF By ScholarHat
Scholarhat
 
How Can the Hermes Engine Help React Native Apps.
How Can the Hermes Engine Help React Native Apps.
Techugo
 
Introduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptx
SHAIKIRFAN715544
 
Introduction to React JS.pptx
Introduction to React JS.pptx
SHAIKIRFAN715544
 
How Can the Hermes Engine Help React Native Apps.docx.pdf
How Can the Hermes Engine Help React Native Apps.docx.pdf
Techugo
 
Vue Js vs React: Which is the Best JS Technology in 2023
Vue Js vs React: Which is the Best JS Technology in 2023
Aman Mishra
 
React JS Interview Questions PDF By ScholarHat
React JS Interview Questions PDF By ScholarHat
Scholarhat
 
React Native’s New Architecture Decoded: How to Migrate & Benefits?
React Native’s New Architecture Decoded: How to Migrate & Benefits?
jhonmiller20
 
Reactjs notes.pptx for web development- tutorial and theory
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
Vue Or React - Which One is the Best_.pptx
Vue Or React - Which One is the Best_.pptx
75waytechnologies
 
Top most React js tools to optimize web app
Top most React js tools to optimize web app
Orange Mantra
 
Fundamental concepts of react js
Fundamental concepts of react js
StephieJohn
 
Ad

Recently uploaded (20)

Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
ISOIEC 42005 Revolutionalises AI Impact Assessment.pptx
ISOIEC 42005 Revolutionalises AI Impact Assessment.pptx
AyilurRamnath1
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
FME Beyond Data Processing Creating A Dartboard Accuracy App
FME Beyond Data Processing Creating A Dartboard Accuracy App
Safe Software
 
Introduction to Typescript - GDG On Campus EUE
Introduction to Typescript - GDG On Campus EUE
Google Developer Group On Campus European Universities in Egypt
 
Jeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software Developer
Jeremy Millul
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Dancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptx
Elliott Richmond
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
“How Qualcomm Is Powering AI-driven Multimedia at the Edge,” a Presentation f...
“How Qualcomm Is Powering AI-driven Multimedia at the Edge,” a Presentation f...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Impelsys Inc.
 
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
Bluebash
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Establish Visibility and Manage Risk in the Supply Chain with Anchore SBOM
Anchore
 
Domino IQ – What to Expect, First Steps and Use Cases
Domino IQ – What to Expect, First Steps and Use Cases
panagenda
 
Oracle Cloud Infrastructure Generative AI Professional
Oracle Cloud Infrastructure Generative AI Professional
VICTOR MAESTRE RAMIREZ
 
ISOIEC 42005 Revolutionalises AI Impact Assessment.pptx
ISOIEC 42005 Revolutionalises AI Impact Assessment.pptx
AyilurRamnath1
 
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
Your startup on AWS - How to architect and maintain a Lean and Mean account J...
angelo60207
 
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Azure vs AWS Which Cloud Platform Is Best for Your Business in 2025
Infrassist Technologies Pvt. Ltd.
 
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Agentic AI: Beyond the Buzz- LangGraph Studio V2
Shashikant Jagtap
 
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
cnc-drilling-dowel-inserting-machine-drillteq-d-510-english.pdf
AmirStern2
 
FME Beyond Data Processing Creating A Dartboard Accuracy App
FME Beyond Data Processing Creating A Dartboard Accuracy App
Safe Software
 
Jeremy Millul - A Talented Software Developer
Jeremy Millul - A Talented Software Developer
Jeremy Millul
 
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
vertical-cnc-processing-centers-drillteq-v-200-en.pdf
AmirStern2
 
Dancing with AI - A Developer's Journey.pptx
Dancing with AI - A Developer's Journey.pptx
Elliott Richmond
 
Bridging the divide: A conversation on tariffs today in the book industry - T...
Bridging the divide: A conversation on tariffs today in the book industry - T...
BookNet Canada
 
“How Qualcomm Is Powering AI-driven Multimedia at the Edge,” a Presentation f...
“How Qualcomm Is Powering AI-driven Multimedia at the Edge,” a Presentation f...
Edge AI and Vision Alliance
 
Oracle Cloud Infrastructure AI Foundations
Oracle Cloud Infrastructure AI Foundations
VICTOR MAESTRE RAMIREZ
 
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
“State-space Models vs. Transformers for Ultra-low-power Edge AI,” a Presenta...
Edge AI and Vision Alliance
 
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Creating an Accessible Future-How AI-powered Accessibility Testing is Shaping...
Impelsys Inc.
 
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
MCP vs A2A vs ACP: Choosing the Right Protocol | Bluebash
Bluebash
 
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Integration of Utility Data into 3D BIM Models Using a 3D Solids Modeling Wor...
Safe Software
 
Ad

Better web apps with React and Redux