SlideShare a Scribd company logo
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Agenda
❑ What Is Artificial Intelligence ?
❑ What Is Machine Learning ?
❑ Limitations Of Machine Learning
❑ Deep Learning To The Rescue
❑ What Is Deep Learning ?
❑ Deep Learning Applications
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Agenda
Need For Redux
What Is Redux?
Redux Components
Setting Up Components
Data Flow
React With Redux
Demo
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Need For Redux?
Why Redux was needed?
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Need For Redux
As React is just the View, thus to control the Data Flow we use Redux as a Data Flow Architecture
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Need For Redux
✓ In React the data flows through Components
✓ It follows uni-directional data flow i.e data always
flows from parent to child component.
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Need For Redux
✓ Child components can’t pass data to its parent
component
✓ The non-parent components can’t communicate
within each other
✓ React doesn't recommend direct component-to-
component communication this way.
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Need For Redux
✓ Redux offers a solution of storing all your application
state in one place, called a "store“
✓ Components then "dispatch" state changes to the
store, not directly to other components.
✓ The components that need to be aware of state
changes can "subscribe" to the store
Store
Dispatch
Subscribe
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
What Is Redux?
What exactly is Redux?
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
What Is Redux?
Redux one of the hottest libraries for front end development
Redux is a predictable state container for JavaScript apps
Mostly used for applications State Management
Developed by Dan Abramov and Andrew Clark in 2015
It is inspired by Facebook’s Flux and influenced by functional
programming language Elm
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Principles Of Redux
1 Single Store
2 State Is Read-Only
3 Change Using Pure Functions
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Principles Of Redux
1 Single Store
2 State Is Read-only
3 Change Using Pure Functions
With only React Uni-directional Data Flow, direct
communication between components is not allowed
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Principles Of Redux
1 Single Store
2 State Is Read-only
Store
Redux uses Store for storing all the application state
at one place. Components state is stored in the Store
and they receive updates from the store itself.
3 Change Using Pure Functions
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Principles Of Redux
2 State Is Read Only
1 Single Store
3 Change Using Pure Functions
You can change the state only by triggering an
action which is an object describing what happened.
Action: No ACTION
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Principles Of Redux
2 State Is Read Only
You can change the state only by triggering an
action which is an object describing what happened.
Action: switch ON
1 Single Store
3 Change Using Pure Functions
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Pure
Function
Principles Of Redux
3 Change Using Pure Functions
1 Single Store
2 State Is Read Only
Prev StateACTION
New State
Pure functions called Reducers are used to indicate
how the State has been transformed by the Action
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Redux Components
1
2
3
4
Action
Reducer
View
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Redux Components
1
2
3
4
Action
Reducer
View
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Action
Application ACTION Store
Plain JavaScript objects which are payloads of information for the store
Data
DataData
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Action
function addTodo(text) {
return {
type: ADD_TODO,
text
}
}
• Must have type property that indicates the type of ACTION being performed.
• They must be defined as String constant.
• You can add more properties to it.
ACTION
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Action
function addTodo(text) {
return {
type: ADD_TODO,
text
}
}
• Functions which create ACTIONS
• Takes in the message, converts it into system understandable format and returns a formatted
Action Object.
ACTION
ACTION CREATOR
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Redux Components
1
2
3
4
Action
Reducer
View
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Reducer
Reducer
Prev State ACTION
New State
Reducers are pure functions which specify how the applications state changes in response to an ACTION
They do not change the value of the input parameter
Determines what sort of update needs to be done based on the type
of the action, and returns new values
It returns the previous state if no work needs to be done
The root reducer slices up the state based on the State Object Keys
and passes them to their respective specialized reducers
Reducers don’t manipulate the original state passed to them but
make their own copies and then updates them.
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
function reducer(state = initialState, action) {
switch (action.type) {
case ADD_TODO:
return Object.assign({}, state,
{ todos: [ ...state.todos,
{
text: action.text,
completed: false
}
]
})
default:
return state
}
}
Reducer
ACTION Prev State
New State
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Reducer
Things you should NEVER do inside a reducer:
Mutate its arguments
Perform side effects like API calls and routing transitions
Call non-pure functions like Date.now() or Math.random()
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Redux Components
1
2
3
4
Action
Reducer
View
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Store
State Tree
Store
Store is an object which brings all the components to work together. It calculates the state changes and
then notifies the root reducer about it.
Application
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Store
import { createStore } from 'redux'
import todoApp from './reducers’
let store = createStore(reducer)
• With Store the data state can be synchronized from the server level to the client layer without
much hassel.
• This makes the development of large applications easier and faster.
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Store Responsibilities
Store
Holding applications state
Allowing access to state via getState()
Allowing the states to be updated via dispatch(action)
Registering listeners via subscribe(listener)
Handles unregistering of listeners via the function returned by subscribe(listener)
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Redux Components
1
2
3
4
Action
Reducer
View
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
View
Displays the data provided by the Store
Store Data View
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
View
• Smart Components are the managers who are in charge of the actions and pass down a function
in via the props to the dumb components.
• Dumb Components provide information to the smart components if any action is required. They
receive them as props and use them as callback.
STATEFUL
<Component/>
STATELESS
<Component/>
STATELESS
<Component/>
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
Redux architecture is concentrated on a strict unidirectional data flow
In an application all the data follows the same lifecycle pattern, making the logic of
your app more predictable and easier to understand.
It also encourages data normalization to ensure consistency
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
Reducers
Provider Component
Actions
One Store
Container
(Dumb Component)
Container
(Smart Component)
Re-render when
Store changes
Pass Data As Props
Store
Store
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Get Store Ready Prepare Action Callbacks
Set Up Communication
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Action
Creator
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Reducers
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Views
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Store
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Provider
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Setting Up The Components
Root
Component
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Get Store Ready Prepare Action Callbacks
Set Up Communication
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
1. Get the store ready
Hey store you are Hired. Here is my
Reducer team to help you out.
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Get Store Ready Prepare Action Callbacks
Set Up Communication
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
2. Set up the communication between the store and the components
Hey Provider, this
is the store I hired
Ohk..let me set up a
network to keep your
components updated
Great! Let me connect
to get the updates
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Get Store Ready
Prepare Action Callbacks
Set Up Communication
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
3. Prepare the action callbacks
I need to make it
easy for dumb
components to
understand
I should bind the action creator
and the dispatcher so that the
dumb component can just call the
callback
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
Name = Maxx
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
1
Type: NAME_UPDATE
Pos: 2
Value:”Maxx”
UID: 101
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
1
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
Here is the current
state tree.
Calculate how new
state tree should
look.
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
Here is
your slice 4
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
4
5
Let me just copy the
slice and update it.
Ohk.. Now this how the
slice looks like
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
4
5
6
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
4
5
6
7
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
4
5
6
7
8
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Data Flow
2
3
1
4
5
6
7
8
Here is the new state
tree. Now you can re-
render your component
trees respectively
9
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
React With Redux
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
React With Redux
React bindings are not included in Redux by default so you need to install them explicitly:
npm install --save react-redux
You have to add these dependency along with babel, react and webpack
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Demo
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Demo
▪ We will be creating an simple User List application using Redux with React
Copyright © 2017, edureka and/or its affiliates. All rights reserved.
Popularity

More Related Content

What's hot (20)

PDF
Workshop 21: React Router
Visual Engineering
 
PDF
Understanding react hooks
Samundra khatri
 
PPTX
Introduction to React JS for beginners
Varun Raj
 
PDF
Introduction to Redux
Ignacio Martín
 
PPTX
Understanding react hooks
Maulik Shah
 
PPTX
React hooks
Assaf Gannon
 
PDF
Understanding React hooks | Walkingtree Technologies
Walking Tree Technologies
 
PPTX
What is component in reactjs
manojbkalla
 
PDF
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
Kenny Gryp
 
PPTX
React JS: A Secret Preview
valuebound
 
PPTX
React + Redux + TypeScript === ♥
Remo Jansen
 
PPTX
reactJS
Syam Santhosh
 
PPTX
A Brief Introduction to React.js
Doug Neiner
 
PPTX
React Hooks
Erez Cohen
 
PDF
Hello, ReactorKit 
Suyeol Jeon
 
PPTX
Oracle Endeca 101 Developer Introduction High Level Overview
Gordon Kiser
 
PPTX
Rxjs ppt
Christoffer Noring
 
PDF
React Interview Questions and Answers | React Tutorial | React Redux Online T...
Edureka!
 
PPTX
Basic math operations using dataweave
Ramakrishna kapa
 
PDF
Webpack DevTalk
Alessandro Bellini
 
Workshop 21: React Router
Visual Engineering
 
Understanding react hooks
Samundra khatri
 
Introduction to React JS for beginners
Varun Raj
 
Introduction to Redux
Ignacio Martín
 
Understanding react hooks
Maulik Shah
 
React hooks
Assaf Gannon
 
Understanding React hooks | Walkingtree Technologies
Walking Tree Technologies
 
What is component in reactjs
manojbkalla
 
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
Kenny Gryp
 
React JS: A Secret Preview
valuebound
 
React + Redux + TypeScript === ♥
Remo Jansen
 
reactJS
Syam Santhosh
 
A Brief Introduction to React.js
Doug Neiner
 
React Hooks
Erez Cohen
 
Hello, ReactorKit 
Suyeol Jeon
 
Oracle Endeca 101 Developer Introduction High Level Overview
Gordon Kiser
 
React Interview Questions and Answers | React Tutorial | React Redux Online T...
Edureka!
 
Basic math operations using dataweave
Ramakrishna kapa
 
Webpack DevTalk
Alessandro Bellini
 

Similar to React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | Edureka (20)

PPTX
Getting started with Redux js
Citrix
 
PDF
ReactRedux.pdf
Arsalan malik
 
PDF
Understanding redux
David Atchley
 
PPTX
Redux Tech Talk
Chathuranga Jayanath
 
PPTX
Redux training
dasersoft
 
PPTX
downloads_introduction to redux.pptx
NavneetKumar111924
 
PPTX
U3-02-React Redux and MUI.pptxaSDFGNXDASDFG
vinodkumarthatipamul
 
PPTX
an Introduction to Redux
Amin Ashtiani
 
PDF
React.js and Redux overview
Alex Bachuk
 
PDF
Introduction to Redux (for Angular and React devs)
Fabio Biondi
 
PDF
[@NaukriEngineering] Flux Architecture
Naukri.com
 
PPTX
Introduction to Redux.pptx
MohammadImran322154
 
PPTX
Let's start with REDUX
Cubet Techno Labs
 
PPTX
Academy PRO: React JS. Redux & Tooling
Binary Studio
 
PPTX
Redux workshop
Imran Sayed
 
PPTX
Reducers+flux=redux
Shmulik Chicvashvili
 
PDF
React Redux Interview Questions PDF By ScholarHat
Scholarhat
 
PDF
React Redux Interview Questions PDF By ScholarHat
Scholarhat
 
PPTX
Redux
Anurag Chitti
 
PDF
An Introduction to Redux
NexThoughts Technologies
 
Getting started with Redux js
Citrix
 
ReactRedux.pdf
Arsalan malik
 
Understanding redux
David Atchley
 
Redux Tech Talk
Chathuranga Jayanath
 
Redux training
dasersoft
 
downloads_introduction to redux.pptx
NavneetKumar111924
 
U3-02-React Redux and MUI.pptxaSDFGNXDASDFG
vinodkumarthatipamul
 
an Introduction to Redux
Amin Ashtiani
 
React.js and Redux overview
Alex Bachuk
 
Introduction to Redux (for Angular and React devs)
Fabio Biondi
 
[@NaukriEngineering] Flux Architecture
Naukri.com
 
Introduction to Redux.pptx
MohammadImran322154
 
Let's start with REDUX
Cubet Techno Labs
 
Academy PRO: React JS. Redux & Tooling
Binary Studio
 
Redux workshop
Imran Sayed
 
Reducers+flux=redux
Shmulik Chicvashvili
 
React Redux Interview Questions PDF By ScholarHat
Scholarhat
 
React Redux Interview Questions PDF By ScholarHat
Scholarhat
 
An Introduction to Redux
NexThoughts Technologies
 
Ad

More from Edureka! (20)

PDF
What to learn during the 21 days Lockdown | Edureka
Edureka!
 
PDF
Top 10 Dying Programming Languages in 2020 | Edureka
Edureka!
 
PDF
Top 5 Trending Business Intelligence Tools | Edureka
Edureka!
 
PDF
Tableau Tutorial for Data Science | Edureka
Edureka!
 
PDF
Python Programming Tutorial | Edureka
Edureka!
 
PDF
Top 5 PMP Certifications | Edureka
Edureka!
 
PDF
Top Maven Interview Questions in 2020 | Edureka
Edureka!
 
PDF
Linux Mint Tutorial | Edureka
Edureka!
 
PDF
How to Deploy Java Web App in AWS| Edureka
Edureka!
 
PDF
Importance of Digital Marketing | Edureka
Edureka!
 
PDF
RPA in 2020 | Edureka
Edureka!
 
PDF
Email Notifications in Jenkins | Edureka
Edureka!
 
PDF
EA Algorithm in Machine Learning | Edureka
Edureka!
 
PDF
Cognitive AI Tutorial | Edureka
Edureka!
 
PDF
AWS Cloud Practitioner Tutorial | Edureka
Edureka!
 
PDF
Blue Prism Top Interview Questions | Edureka
Edureka!
 
PDF
Big Data on AWS Tutorial | Edureka
Edureka!
 
PDF
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
Edureka!
 
PDF
Kubernetes Installation on Ubuntu | Edureka
Edureka!
 
PDF
Introduction to DevOps | Edureka
Edureka!
 
What to learn during the 21 days Lockdown | Edureka
Edureka!
 
Top 10 Dying Programming Languages in 2020 | Edureka
Edureka!
 
Top 5 Trending Business Intelligence Tools | Edureka
Edureka!
 
Tableau Tutorial for Data Science | Edureka
Edureka!
 
Python Programming Tutorial | Edureka
Edureka!
 
Top 5 PMP Certifications | Edureka
Edureka!
 
Top Maven Interview Questions in 2020 | Edureka
Edureka!
 
Linux Mint Tutorial | Edureka
Edureka!
 
How to Deploy Java Web App in AWS| Edureka
Edureka!
 
Importance of Digital Marketing | Edureka
Edureka!
 
RPA in 2020 | Edureka
Edureka!
 
Email Notifications in Jenkins | Edureka
Edureka!
 
EA Algorithm in Machine Learning | Edureka
Edureka!
 
Cognitive AI Tutorial | Edureka
Edureka!
 
AWS Cloud Practitioner Tutorial | Edureka
Edureka!
 
Blue Prism Top Interview Questions | Edureka
Edureka!
 
Big Data on AWS Tutorial | Edureka
Edureka!
 
A star algorithm | A* Algorithm in Artificial Intelligence | Edureka
Edureka!
 
Kubernetes Installation on Ubuntu | Edureka
Edureka!
 
Introduction to DevOps | Edureka
Edureka!
 
Ad

Recently uploaded (20)

PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
July Patch Tuesday
Ivanti
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Biography of Daniel Podor.pdf
Daniel Podor
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
July Patch Tuesday
Ivanti
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
"AI Transformation: Directions and Challenges", Pavlo Shaternik
Fwdays
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
From Code to Challenge: Crafting Skill-Based Games That Engage and Reward
aiyshauae
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 

React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | Edureka

  • 1. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Agenda ❑ What Is Artificial Intelligence ? ❑ What Is Machine Learning ? ❑ Limitations Of Machine Learning ❑ Deep Learning To The Rescue ❑ What Is Deep Learning ? ❑ Deep Learning Applications
  • 2. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Agenda Need For Redux What Is Redux? Redux Components Setting Up Components Data Flow React With Redux Demo
  • 3. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Need For Redux? Why Redux was needed?
  • 4. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Need For Redux As React is just the View, thus to control the Data Flow we use Redux as a Data Flow Architecture
  • 5. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Need For Redux ✓ In React the data flows through Components ✓ It follows uni-directional data flow i.e data always flows from parent to child component.
  • 6. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Need For Redux ✓ Child components can’t pass data to its parent component ✓ The non-parent components can’t communicate within each other ✓ React doesn't recommend direct component-to- component communication this way.
  • 7. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Need For Redux ✓ Redux offers a solution of storing all your application state in one place, called a "store“ ✓ Components then "dispatch" state changes to the store, not directly to other components. ✓ The components that need to be aware of state changes can "subscribe" to the store Store Dispatch Subscribe
  • 8. Copyright © 2017, edureka and/or its affiliates. All rights reserved. What Is Redux? What exactly is Redux?
  • 9. Copyright © 2017, edureka and/or its affiliates. All rights reserved. What Is Redux? Redux one of the hottest libraries for front end development Redux is a predictable state container for JavaScript apps Mostly used for applications State Management Developed by Dan Abramov and Andrew Clark in 2015 It is inspired by Facebook’s Flux and influenced by functional programming language Elm
  • 10. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Principles Of Redux 1 Single Store 2 State Is Read-Only 3 Change Using Pure Functions
  • 11. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Principles Of Redux 1 Single Store 2 State Is Read-only 3 Change Using Pure Functions With only React Uni-directional Data Flow, direct communication between components is not allowed
  • 12. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Principles Of Redux 1 Single Store 2 State Is Read-only Store Redux uses Store for storing all the application state at one place. Components state is stored in the Store and they receive updates from the store itself. 3 Change Using Pure Functions
  • 13. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Principles Of Redux 2 State Is Read Only 1 Single Store 3 Change Using Pure Functions You can change the state only by triggering an action which is an object describing what happened. Action: No ACTION
  • 14. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Principles Of Redux 2 State Is Read Only You can change the state only by triggering an action which is an object describing what happened. Action: switch ON 1 Single Store 3 Change Using Pure Functions
  • 15. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Pure Function Principles Of Redux 3 Change Using Pure Functions 1 Single Store 2 State Is Read Only Prev StateACTION New State Pure functions called Reducers are used to indicate how the State has been transformed by the Action
  • 16. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Redux Components 1 2 3 4 Action Reducer View Store
  • 17. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Redux Components 1 2 3 4 Action Reducer View Store
  • 18. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Action Application ACTION Store Plain JavaScript objects which are payloads of information for the store Data DataData
  • 19. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Action function addTodo(text) { return { type: ADD_TODO, text } } • Must have type property that indicates the type of ACTION being performed. • They must be defined as String constant. • You can add more properties to it. ACTION
  • 20. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Action function addTodo(text) { return { type: ADD_TODO, text } } • Functions which create ACTIONS • Takes in the message, converts it into system understandable format and returns a formatted Action Object. ACTION ACTION CREATOR
  • 21. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Redux Components 1 2 3 4 Action Reducer View Store
  • 22. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Reducer Reducer Prev State ACTION New State Reducers are pure functions which specify how the applications state changes in response to an ACTION They do not change the value of the input parameter Determines what sort of update needs to be done based on the type of the action, and returns new values It returns the previous state if no work needs to be done The root reducer slices up the state based on the State Object Keys and passes them to their respective specialized reducers Reducers don’t manipulate the original state passed to them but make their own copies and then updates them.
  • 23. Copyright © 2017, edureka and/or its affiliates. All rights reserved. function reducer(state = initialState, action) { switch (action.type) { case ADD_TODO: return Object.assign({}, state, { todos: [ ...state.todos, { text: action.text, completed: false } ] }) default: return state } } Reducer ACTION Prev State New State
  • 24. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Reducer Things you should NEVER do inside a reducer: Mutate its arguments Perform side effects like API calls and routing transitions Call non-pure functions like Date.now() or Math.random()
  • 25. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Redux Components 1 2 3 4 Action Reducer View Store
  • 26. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Store State Tree Store Store is an object which brings all the components to work together. It calculates the state changes and then notifies the root reducer about it. Application
  • 27. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Store import { createStore } from 'redux' import todoApp from './reducers’ let store = createStore(reducer) • With Store the data state can be synchronized from the server level to the client layer without much hassel. • This makes the development of large applications easier and faster. Store
  • 28. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Store Responsibilities Store Holding applications state Allowing access to state via getState() Allowing the states to be updated via dispatch(action) Registering listeners via subscribe(listener) Handles unregistering of listeners via the function returned by subscribe(listener)
  • 29. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Redux Components 1 2 3 4 Action Reducer View Store
  • 30. Copyright © 2017, edureka and/or its affiliates. All rights reserved. View Displays the data provided by the Store Store Data View
  • 31. Copyright © 2017, edureka and/or its affiliates. All rights reserved. View • Smart Components are the managers who are in charge of the actions and pass down a function in via the props to the dumb components. • Dumb Components provide information to the smart components if any action is required. They receive them as props and use them as callback. STATEFUL <Component/> STATELESS <Component/> STATELESS <Component/>
  • 32. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow
  • 33. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow Redux architecture is concentrated on a strict unidirectional data flow In an application all the data follows the same lifecycle pattern, making the logic of your app more predictable and easier to understand. It also encourages data normalization to ensure consistency
  • 34. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow Reducers Provider Component Actions One Store Container (Dumb Component) Container (Smart Component) Re-render when Store changes Pass Data As Props Store Store Store
  • 35. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Get Store Ready Prepare Action Callbacks Set Up Communication
  • 36. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Action Creator
  • 37. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Reducers
  • 38. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Views
  • 39. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Store
  • 40. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Provider
  • 41. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Setting Up The Components Root Component
  • 42. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Get Store Ready Prepare Action Callbacks Set Up Communication
  • 43. Copyright © 2017, edureka and/or its affiliates. All rights reserved. 1. Get the store ready Hey store you are Hired. Here is my Reducer team to help you out.
  • 44. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Get Store Ready Prepare Action Callbacks Set Up Communication
  • 45. Copyright © 2017, edureka and/or its affiliates. All rights reserved. 2. Set up the communication between the store and the components Hey Provider, this is the store I hired Ohk..let me set up a network to keep your components updated Great! Let me connect to get the updates
  • 46. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Get Store Ready Prepare Action Callbacks Set Up Communication
  • 47. Copyright © 2017, edureka and/or its affiliates. All rights reserved. 3. Prepare the action callbacks I need to make it easy for dumb components to understand I should bind the action creator and the dispatcher so that the dumb component can just call the callback
  • 48. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow
  • 49. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow Name = Maxx
  • 50. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 1 Type: NAME_UPDATE Pos: 2 Value:”Maxx” UID: 101
  • 51. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 1
  • 52. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 Here is the current state tree. Calculate how new state tree should look.
  • 53. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 Here is your slice 4
  • 54. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 4 5 Let me just copy the slice and update it. Ohk.. Now this how the slice looks like
  • 55. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 4 5 6
  • 56. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 4 5 6 7
  • 57. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 4 5 6 7 8
  • 58. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Data Flow 2 3 1 4 5 6 7 8 Here is the new state tree. Now you can re- render your component trees respectively 9
  • 59. Copyright © 2017, edureka and/or its affiliates. All rights reserved. React With Redux
  • 60. Copyright © 2017, edureka and/or its affiliates. All rights reserved. React With Redux React bindings are not included in Redux by default so you need to install them explicitly: npm install --save react-redux You have to add these dependency along with babel, react and webpack
  • 61. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Demo
  • 62. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Demo ▪ We will be creating an simple User List application using Redux with React
  • 63. Copyright © 2017, edureka and/or its affiliates. All rights reserved. Popularity