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

PDF
React Components Lifecycle | React Tutorial for Beginners | ReactJS Training ...
PDF
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
PPTX
Introduction to React JS for beginners | Namespace IT
PDF
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
PDF
ReactJS Tutorial For Beginners | ReactJS Redux Training For Beginners | React...
PDF
PDF
Redux Toolkit - Quick Intro - 2022
PDF
Redux essentials
React Components Lifecycle | React Tutorial for Beginners | ReactJS Training ...
What Is React | ReactJS Tutorial for Beginners | ReactJS Training | Edureka
Introduction to React JS for beginners | Namespace IT
Introduction to react-query. A Redux alternative? (Nikos Kleidis, Front End D...
ReactJS Tutorial For Beginners | ReactJS Redux Training For Beginners | React...
Redux Toolkit - Quick Intro - 2022
Redux essentials

What's hot (20)

PDF
React Interview Questions and Answers | React Tutorial | React Redux Online T...
PDF
Introduction to React JS
ODP
Introduction to ReactJS
PPTX
React hooks
PDF
React & Redux
PDF
ReactJS presentation
PDF
Reasons to use React Query
PPTX
React js for beginners
PPTX
React workshop
PPTX
React + Redux Introduction
PPTX
reactJS
PPTX
Introduction to React
PPTX
React JS - A quick introduction tutorial
PPTX
React JS: A Secret Preview
PPTX
Redux workshop
PPTX
Introduction to React JS for beginners
PDF
An introduction to React.js
PPTX
React js
PPTX
React hooks
PPTX
React web development
React Interview Questions and Answers | React Tutorial | React Redux Online T...
Introduction to React JS
Introduction to ReactJS
React hooks
React & Redux
ReactJS presentation
Reasons to use React Query
React js for beginners
React workshop
React + Redux Introduction
reactJS
Introduction to React
React JS - A quick introduction tutorial
React JS: A Secret Preview
Redux workshop
Introduction to React JS for beginners
An introduction to React.js
React js
React hooks
React web development
Ad

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

PPTX
Getting started with Redux js
PDF
ReactRedux.pdf
PDF
Understanding redux
PPTX
Redux Tech Talk
PPTX
Redux training
PPTX
downloads_introduction to redux.pptx
PPTX
U3-02-React Redux and MUI.pptxaSDFGNXDASDFG
PPTX
an Introduction to Redux
PDF
React.js and Redux overview
PDF
Introduction to Redux (for Angular and React devs)
PDF
[@NaukriEngineering] Flux Architecture
PPTX
Introduction to Redux.pptx
PPTX
Let's start with REDUX
PPTX
Academy PRO: React JS. Redux & Tooling
PPTX
Reducers+flux=redux
PDF
React Redux Interview Questions PDF By ScholarHat
PDF
React Redux Interview Questions PDF By ScholarHat
PPTX
PDF
An Introduction to Redux
PDF
Evan Schultz - Angular Summit - 2016
Getting started with Redux js
ReactRedux.pdf
Understanding redux
Redux Tech Talk
Redux training
downloads_introduction to redux.pptx
U3-02-React Redux and MUI.pptxaSDFGNXDASDFG
an Introduction to Redux
React.js and Redux overview
Introduction to Redux (for Angular and React devs)
[@NaukriEngineering] Flux Architecture
Introduction to Redux.pptx
Let's start with REDUX
Academy PRO: React JS. Redux & Tooling
Reducers+flux=redux
React Redux Interview Questions PDF By ScholarHat
React Redux Interview Questions PDF By ScholarHat
An Introduction to Redux
Evan Schultz - Angular Summit - 2016
Ad

More from Edureka! (20)

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

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
KodekX | Application Modernization Development
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
Network Security Unit 5.pdf for BCA BBA.
DOCX
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Programs and apps: productivity, graphics, security and other tools
Per capita expenditure prediction using model stacking based on satellite ima...
Dropbox Q2 2025 Financial Results & Investor Presentation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
KodekX | Application Modernization Development
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Building Integrated photovoltaic BIPV_UPV.pdf
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Spectroscopy.pptx food analysis technology
Network Security Unit 5.pdf for BCA BBA.
The AUB Centre for AI in Media Proposal.docx

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