SlideShare a Scribd company logo
1 of 18
FRONTEND BOOTCAMP
Session #4
React JS
• Performance Optimization Hooks
• useMemo
• useCallback
• State Management in React
• Local State Management
• Global State Management
• Redux
Performance Optimization
Hooks
How to make your react app efficient
useMemo
• The useMemo hook is a built-in hook in React that allows you to
optimize the performance of your components by memoizing the
result of a computation and only recomputing it when its
dependencies change.
const memoizedValue = useMemo(() => {
// computation or calculation
}, [dependency1, dependency2]);
When To useMemo??
• Derived data: When you need to compute a derived value from other
values or props, such as filtering or sorting an array of data.
• Expensive calculations: When you need to perform complex
calculations or operations that are resource-intensive, such as heavy
computations or data processing.
• Avoiding unnecessary renders: When you want to prevent unnecessary
renders of a component by memoizing a value that is used as a prop or
state in child components, ensuring that they only re-render when the
memoized value changes.
useCallback
• The useCallback hook is a built-in hook in React that allows you to optimize
the performance of your components by memoizing a callback function and
only recreating it when its dependencies change.
• It is often used to prevent unnecessary re-renders of child components that
receive callback functions as props.
const memoizedCallback = useCallback(() => {
// callback function
}, [dependency1, dependency2] );
When To useCallback??
• Callbacks in event handlers: When passing callback functions to event
handlers, such as onClick or onChange events, to prevent unnecessary re-
renders of components that use these callbacks.
• Memoized props: When passing callback functions as props to child
components, to ensure that the child components receive the same callback
function instance and prevent unnecessary re-renders.
State Management in React
Why do we need it and how it allows us to build
interactive client side applications
State Management in React
• In React, state management refers to how data is stored,
accessed, and updated in a React application
• Two methodologies for state management
• Local State Management
• Global State Management
Local State Management
• Local state management in React involves storing and managing data
within a single component.
• It allows a component to have its own private state that can be used
to store and manage component-specific data.
• The useState hook is the most common way for local state
management, allowing you to declare a state variable and its initial
value within a functional component.
const [count, setCount] = useState(0)
Local State Management
• Problem with Local State Management??
• Prop Drilling:
• In Nested usecases, when a state is consumed
in a lower component in hierarchy, middle
components only pass the state forward as
props making it unmaintainable.
• This also makes the updation of state by the
lower component in hierarchy more tedious as
a callback function has also to be passed
forward if the state is to be updated
Global State Management
• Global state management in React involves managing and sharing data
across multiple components within an application.
• It allows components to access and update a shared state, eliminating the
need for prop drilling
• Methodologies for Global State Management
• Context Api (Built in feature of react)
• Third Party Libraries(Redux, MobX, Recoil, Zustand etc)
Context Api
• The Context API is a built-in feature of React that allows you to share
state across components without passing props through all levels of
nested components
• It provides a way to create a global state that can be accessed by any
component within the context tree.
• Components can access the context using createContext and useContext
hook, and the state can be updated using the setState function provided by
the context
Context Api
Global State Management
• Problem With Context Api??
• Performance issues due to unnecessary rerenders
• Solution is Redux
• The key concepts in Redux are:
• Store: The store is a single source of truth that holds the global state of the
application. It is an immutable object and it cannot be directly modified.
Components can access the store to read the state and dispatch actions to update
the state.
Redux
• Actions: Actions are plain JavaScript objects that represent a change or an event in
the application. They carry data, typically in the form of a payload. Actions are
dispatched by components to trigger state updates.
• Reducers: Reducers are pure functions that take the current state and an action as
input and produce a new state as output
Steps to Integrate Redux In your Application
1.Create The Store, Registers all Reducers defined elsewhere in the code.
2.Declare Provider To make this store accessible in the entire
app(Component Tree).
3.Create A Slice which should have a unique name, an initial state, and
reducer functions.
Reducer functions??
Take the previous state and action payload, to define the logic required to
change the state
Make sure to join us in the next session!!
Thank You!

More Related Content

Similar to FRONTEND BOOTCAMP 4.pptx

Understanding React hooks | Walkingtree Technologies
Understanding React hooks | Walkingtree TechnologiesUnderstanding React hooks | Walkingtree Technologies
Understanding React hooks | Walkingtree TechnologiesWalking Tree Technologies
 
an Introduction to Redux
an Introduction to Reduxan Introduction to Redux
an Introduction to ReduxAmin Ashtiani
 
Module Architecture of React-Redux Applications
Module Architecture of React-Redux ApplicationsModule Architecture of React-Redux Applications
Module Architecture of React-Redux ApplicationsAndrii Sliusar
 
React and Flux life cycle with JSX, React Router and Jest Unit Testing
React and  Flux life cycle with JSX, React Router and Jest Unit TestingReact and  Flux life cycle with JSX, React Router and Jest Unit Testing
React and Flux life cycle with JSX, React Router and Jest Unit TestingEswara Kumar Palakollu
 
React JS Interview Question & Answer
React JS Interview Question & AnswerReact JS Interview Question & Answer
React JS Interview Question & AnswerMildain Solutions
 
An Overview of the React Ecosystem
An Overview of the React EcosystemAn Overview of the React Ecosystem
An Overview of the React EcosystemFITC
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrxIlia Idakiev
 
React presentation-google-hackathon
React presentation-google-hackathonReact presentation-google-hackathon
React presentation-google-hackathonSophie DeBenedetto
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react jsStephieJohn
 
Introduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsIntroduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsFederico Torre
 
Presentation on "An Introduction to ReactJS"
Presentation on "An Introduction to ReactJS"Presentation on "An Introduction to ReactJS"
Presentation on "An Introduction to ReactJS"Flipkart
 
Advanced Redux architecture - WHAT/WHEN/WHY/HOW
Advanced Redux architecture - WHAT/WHEN/WHY/HOWAdvanced Redux architecture - WHAT/WHEN/WHY/HOW
Advanced Redux architecture - WHAT/WHEN/WHY/HOWMateusz Bosek
 
Optimizing your use of react life cycles by shedrack akintayo
Optimizing your use of react life cycles by shedrack akintayoOptimizing your use of react life cycles by shedrack akintayo
Optimizing your use of react life cycles by shedrack akintayoShedrack Akintayo
 

Similar to FRONTEND BOOTCAMP 4.pptx (20)

Understanding React hooks | Walkingtree Technologies
Understanding React hooks | Walkingtree TechnologiesUnderstanding React hooks | Walkingtree Technologies
Understanding React hooks | Walkingtree Technologies
 
an Introduction to Redux
an Introduction to Reduxan Introduction to Redux
an Introduction to Redux
 
reactJS
reactJSreactJS
reactJS
 
Module Architecture of React-Redux Applications
Module Architecture of React-Redux ApplicationsModule Architecture of React-Redux Applications
Module Architecture of React-Redux Applications
 
React and Flux life cycle with JSX, React Router and Jest Unit Testing
React and  Flux life cycle with JSX, React Router and Jest Unit TestingReact and  Flux life cycle with JSX, React Router and Jest Unit Testing
React and Flux life cycle with JSX, React Router and Jest Unit Testing
 
Redux Like Us
Redux Like UsRedux Like Us
Redux Like Us
 
React JS Interview Question & Answer
React JS Interview Question & AnswerReact JS Interview Question & Answer
React JS Interview Question & Answer
 
An Overview of the React Ecosystem
An Overview of the React EcosystemAn Overview of the React Ecosystem
An Overview of the React Ecosystem
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
Predictable reactive state management - ngrx
Predictable reactive state management - ngrxPredictable reactive state management - ngrx
Predictable reactive state management - ngrx
 
React
ReactReact
React
 
Redux
ReduxRedux
Redux
 
React presentation-google-hackathon
React presentation-google-hackathonReact presentation-google-hackathon
React presentation-google-hackathon
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react js
 
Introduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsIntroduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic Apps
 
Presentation on "An Introduction to ReactJS"
Presentation on "An Introduction to ReactJS"Presentation on "An Introduction to ReactJS"
Presentation on "An Introduction to ReactJS"
 
Advanced Redux architecture - WHAT/WHEN/WHY/HOW
Advanced Redux architecture - WHAT/WHEN/WHY/HOWAdvanced Redux architecture - WHAT/WHEN/WHY/HOW
Advanced Redux architecture - WHAT/WHEN/WHY/HOW
 
Optimizing your use of react life cycles by shedrack akintayo
Optimizing your use of react life cycles by shedrack akintayoOptimizing your use of react life cycles by shedrack akintayo
Optimizing your use of react life cycles by shedrack akintayo
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
 
react redux.pdf
react redux.pdfreact redux.pdf
react redux.pdf
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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 RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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...Drew Madelung
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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...Martijn de Jong
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
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 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
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
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

FRONTEND BOOTCAMP 4.pptx

  • 2. React JS • Performance Optimization Hooks • useMemo • useCallback • State Management in React • Local State Management • Global State Management • Redux
  • 3. Performance Optimization Hooks How to make your react app efficient
  • 4. useMemo • The useMemo hook is a built-in hook in React that allows you to optimize the performance of your components by memoizing the result of a computation and only recomputing it when its dependencies change. const memoizedValue = useMemo(() => { // computation or calculation }, [dependency1, dependency2]);
  • 5. When To useMemo?? • Derived data: When you need to compute a derived value from other values or props, such as filtering or sorting an array of data. • Expensive calculations: When you need to perform complex calculations or operations that are resource-intensive, such as heavy computations or data processing. • Avoiding unnecessary renders: When you want to prevent unnecessary renders of a component by memoizing a value that is used as a prop or state in child components, ensuring that they only re-render when the memoized value changes.
  • 6. useCallback • The useCallback hook is a built-in hook in React that allows you to optimize the performance of your components by memoizing a callback function and only recreating it when its dependencies change. • It is often used to prevent unnecessary re-renders of child components that receive callback functions as props. const memoizedCallback = useCallback(() => { // callback function }, [dependency1, dependency2] );
  • 7. When To useCallback?? • Callbacks in event handlers: When passing callback functions to event handlers, such as onClick or onChange events, to prevent unnecessary re- renders of components that use these callbacks. • Memoized props: When passing callback functions as props to child components, to ensure that the child components receive the same callback function instance and prevent unnecessary re-renders.
  • 8. State Management in React Why do we need it and how it allows us to build interactive client side applications
  • 9. State Management in React • In React, state management refers to how data is stored, accessed, and updated in a React application • Two methodologies for state management • Local State Management • Global State Management
  • 10. Local State Management • Local state management in React involves storing and managing data within a single component. • It allows a component to have its own private state that can be used to store and manage component-specific data. • The useState hook is the most common way for local state management, allowing you to declare a state variable and its initial value within a functional component. const [count, setCount] = useState(0)
  • 11. Local State Management • Problem with Local State Management?? • Prop Drilling: • In Nested usecases, when a state is consumed in a lower component in hierarchy, middle components only pass the state forward as props making it unmaintainable. • This also makes the updation of state by the lower component in hierarchy more tedious as a callback function has also to be passed forward if the state is to be updated
  • 12. Global State Management • Global state management in React involves managing and sharing data across multiple components within an application. • It allows components to access and update a shared state, eliminating the need for prop drilling • Methodologies for Global State Management • Context Api (Built in feature of react) • Third Party Libraries(Redux, MobX, Recoil, Zustand etc)
  • 13. Context Api • The Context API is a built-in feature of React that allows you to share state across components without passing props through all levels of nested components • It provides a way to create a global state that can be accessed by any component within the context tree. • Components can access the context using createContext and useContext hook, and the state can be updated using the setState function provided by the context
  • 15. Global State Management • Problem With Context Api?? • Performance issues due to unnecessary rerenders • Solution is Redux • The key concepts in Redux are: • Store: The store is a single source of truth that holds the global state of the application. It is an immutable object and it cannot be directly modified. Components can access the store to read the state and dispatch actions to update the state.
  • 16. Redux • Actions: Actions are plain JavaScript objects that represent a change or an event in the application. They carry data, typically in the form of a payload. Actions are dispatched by components to trigger state updates. • Reducers: Reducers are pure functions that take the current state and an action as input and produce a new state as output
  • 17. Steps to Integrate Redux In your Application 1.Create The Store, Registers all Reducers defined elsewhere in the code. 2.Declare Provider To make this store accessible in the entire app(Component Tree). 3.Create A Slice which should have a unique name, an initial state, and reducer functions. Reducer functions?? Take the previous state and action payload, to define the logic required to change the state
  • 18. Make sure to join us in the next session!! Thank You!

Editor's Notes

  1. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  2. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  3. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  4. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  5. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  6. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  7. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  8. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  9. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  10. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  11. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  12. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  13. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  14. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  15. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  16. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  17. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library
  18. © Copyright PresentationGO.com – The free PowerPoint and Google Slides template library