SlideShare a Scribd company logo
aOS Luxembourg
6 décembre 2018
Introduce Redux in your SPFx solution
Yannick Borghmans
#SPSOSLO, December 7th, 2019
yannickborghmans.com
Linkedin.com/in/yborghmans
@yborghmans
Yannick Borghmans
Office 365/SharePoint Technical Lead @Ventigrate
Thank you to our APP Sponsor
Please go to store on IOS or Android to download.
Login with email used to register
Type Code #SPSOslo19
Thank you to Sennheiser for raffle gifts
aOS Luxembourg
6 décembre 2018
What to expect?
Introduction React
What is Redux
Middleware
Tooling
SPFx Tips & Tricks
React
React
React is a declarative, efficient, and flexible
JavaScript library for building user interfaces.
It lets you compose complex UIs from small and
isolated pieces of code called “components”
Fast!!!
React
Components
React
Components
Props
<CustomHeader heading=“Whoooooot! This is awesome” subtitle=“Welcome tot SPS Oslo”/>
React
Components
Props
State
React
Props and State do similar things but are used in
different ways. The majority of your components
will probably be stateless.
Props are used to pass data from parent to child
or by the component itself. They are immutable
and thus will not be changed.
State is used for mutable data, or data that will
change. This is particularly useful for user input.
Think search bars for example. The user will type
in data and this will update what they see.
React
Props and State do similar things but are used in
different ways. The majority of your components
will probably be stateless.
Props are used to pass data from parent to child
or by the component itself. They are immutable
and thus will not be changed.
State is used for mutable data, or data that will
change. This is particularly useful for user input.
Think search bars for example. The user will type
in data and this will update what they see.
React
Props and State do similar things but are used in
different ways. The majority of your components
will probably be stateless.
Props are used to pass data from parent to child
or by the component itself. They are immutable
and thus will not be changed.
State is used for mutable data, or data that will
change. This is particularly useful for user input.
Think search bars for example. The user will type
in data and this will update what they see.
Demo
Building ‘simple’ React application
Redux
Redux
Redux is a state container, it stores all of your
state in one place
The state is read only, the only way to change
state is to dispatch an action.
State can only be changed by pure functions or in
another term: Reducers. Redux Reducers take in
the previous state and an action object and
returns the next state.
Three
Principles
Single source of truth
State is read-only
Changes are made with pure functions
aOS Luxembourg
6 décembre 2018
What to do
in SPFx?
Add
• Actions
• Reducer
• Store
• Application State
‘Decouple’ components
Dispatch events
Demo
Converting to Redux
Middleware
Middleware
It provides a third-party extension point
between dispatching an action, and the moment
it reaches the reducer.
Examples of Middleware
• API Calls
• Aure
• SharePoint
• Logging
Demo
Use Middleware
Tooling
Redux DevTools Extension
• npm install --save-dev redux-devtools-extension
Demo
SPFx Tips & Tricks
Split up actions (Redux)
• Gets really quick ‘dirty’
• Split up by functionality
• User actions
• SP lists
State libraries
Redux Mobx Flux React Hooks
Debugging in production
1. gulp clean
2. gulp serve --nobrowser
3. add at the end of the url the following url paramters:
&loadSPFX=true&debugManifestsFile=https://localhost:4321/temp
/manifests.js
4. confirm to load debug scripts
Comments
• Type in /**
PnP JS + PnP Controls
• Installing PnP JS in your SPFx solution
• npm install @pnp/logging @pnp/common
@pnp/odata @pnp/sp --save
• Usage
• sp.web.lists.getByTitle("Sessions").items.getAll().the
n((items) => {
console.log(items);
})
Office UI fabric
Check
Manifest
Ctrl+F12
Logging
Application insights Create wrapper –
change where to log
Debug level =>
propertypane
VSCode
extensions
• VSCode Icons
• SPFx Snippets
• Settings Sync
• Rencore Deploy SPFx package
• One Monokai Theme
• Bracket Pair Colorizer
• Gitlens
• API Management
Key takeaways
Key takeaways
SMALL SPFX SOLUTION
=> NO REDUX
SPLIT UP ACTIONS USE DEVTOOLS PUT EVERYTHING IN
STATE
MIDDLEWARE FOR (SP)
API CALLS
Introduce Redux in your SPFx solution
Yannick Borghmans
#SPSOSLO, December 7th, 2019

More Related Content

Similar to Sps Oslo - Introduce redux in your sp fx solution

SPS Stockholm Introduce Redux in your SPFx solution
SPS Stockholm   Introduce Redux in your SPFx solutionSPS Stockholm   Introduce Redux in your SPFx solution
SPS Stockholm Introduce Redux in your SPFx solution
Yannick Borghmans
 
React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)
Chiew Carol
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
Fabrit Global
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
Thomas Daly
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
AnmolPandita7
 
API Integration
API IntegrationAPI Integration
API Integration
eMerge Technologies
 
an Introduction to Redux
an Introduction to Reduxan Introduction to Redux
an Introduction to Redux
Amin Ashtiani
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react
MoonTechnolabsPvtLtd
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorial
Mohammed Fazuluddin
 
Introduction to React JS.pptx
Introduction to React JS.pptxIntroduction to React JS.pptx
Introduction to React JS.pptx
SHAIKIRFAN715544
 
Mastering sp fx in larger projects yannick borghmans
Mastering sp fx in larger projects   yannick borghmansMastering sp fx in larger projects   yannick borghmans
Mastering sp fx in larger projects yannick borghmans
Yannick Borghmans
 
GITS Class #20: Building A Fast and Responsive UI in React Native
GITS Class #20: Building A Fast and Responsive UI in React NativeGITS Class #20: Building A Fast and Responsive UI in React Native
GITS Class #20: Building A Fast and Responsive UI in React Native
GITS Indonesia
 
Introduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptxIntroduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptx
SHAIKIRFAN715544
 
REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
ArthyR3
 
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
Edureka!
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
Michael Choi
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
John Stevenson
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
John Stevenson
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
VMware Tanzu
 

Similar to Sps Oslo - Introduce redux in your sp fx solution (20)

SPS Stockholm Introduce Redux in your SPFx solution
SPS Stockholm   Introduce Redux in your SPFx solutionSPS Stockholm   Introduce Redux in your SPFx solution
SPS Stockholm Introduce Redux in your SPFx solution
 
React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)
 
Getting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular DeveloperGetting Started with React, When You’re an Angular Developer
Getting Started with React, When You’re an Angular Developer
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
API Integration
API IntegrationAPI Integration
API Integration
 
an Introduction to Redux
an Introduction to Reduxan Introduction to Redux
an Introduction to Redux
 
How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react How to increase the ui performance of apps designed using react
How to increase the ui performance of apps designed using react
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorial
 
Introduction to React JS.pptx
Introduction to React JS.pptxIntroduction to React JS.pptx
Introduction to React JS.pptx
 
Mastering sp fx in larger projects yannick borghmans
Mastering sp fx in larger projects   yannick borghmansMastering sp fx in larger projects   yannick borghmans
Mastering sp fx in larger projects yannick borghmans
 
GITS Class #20: Building A Fast and Responsive UI in React Native
GITS Class #20: Building A Fast and Responsive UI in React NativeGITS Class #20: Building A Fast and Responsive UI in React Native
GITS Class #20: Building A Fast and Responsive UI in React Native
 
Introduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptxIntroduction to ReactJS UI Web Dev .pptx
Introduction to ReactJS UI Web Dev .pptx
 
REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
 
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Heroku for-team-collaboration
Heroku for-team-collaborationHeroku for-team-collaboration
Heroku for-team-collaboration
 
Heroku for team collaboration
Heroku for team collaborationHeroku for team collaboration
Heroku for team collaboration
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
 
How to Migrate Applications Off a Mainframe
How to Migrate Applications Off a MainframeHow to Migrate Applications Off a Mainframe
How to Migrate Applications Off a Mainframe
 

More from Yannick Borghmans

aOS Monaco - SPFx deployment
aOS Monaco - SPFx deploymentaOS Monaco - SPFx deployment
aOS Monaco - SPFx deployment
Yannick Borghmans
 
SPS Madrid - SPFx deployment
SPS Madrid - SPFx deploymentSPS Madrid - SPFx deployment
SPS Madrid - SPFx deployment
Yannick Borghmans
 
SPS Paris - SPFx deployment
SPS Paris - SPFx deploymentSPS Paris - SPFx deployment
SPS Paris - SPFx deployment
Yannick Borghmans
 
SPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx DeploymentSPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx Deployment
Yannick Borghmans
 
SPSNL - SPFx Deployment
SPSNL - SPFx DeploymentSPSNL - SPFx Deployment
SPSNL - SPFx Deployment
Yannick Borghmans
 
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
Yannick Borghmans
 

More from Yannick Borghmans (6)

aOS Monaco - SPFx deployment
aOS Monaco - SPFx deploymentaOS Monaco - SPFx deployment
aOS Monaco - SPFx deployment
 
SPS Madrid - SPFx deployment
SPS Madrid - SPFx deploymentSPS Madrid - SPFx deployment
SPS Madrid - SPFx deployment
 
SPS Paris - SPFx deployment
SPS Paris - SPFx deploymentSPS Paris - SPFx deployment
SPS Paris - SPFx deployment
 
SPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx DeploymentSPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx Deployment
 
SPSNL - SPFx Deployment
SPSNL - SPFx DeploymentSPSNL - SPFx Deployment
SPSNL - SPFx Deployment
 
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
Biwug 20180410 - I developed a SharePoint Framework solution, what to do next...
 

Recently uploaded

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 

Recently uploaded (20)

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 

Sps Oslo - Introduce redux in your sp fx solution

Editor's Notes

  1. React is a JavaScript library for building user interfaces. It is the view layer for web applications. At the heart of all React applications are components. A component is a self-contained module that renders some output. We can write interface elements like a button or an input field as a React component. Components are composable. A component might include one or more other components in its output. Broadly speaking, to write React apps we write React components that correspond to various interface elements. We then organize these components inside higher-level components which define the structure of our application. For example, take a form. A form might consist of many interface elements, like input fields, labels, or buttons. Each element inside the form can be written as a React component. We'd then write a higher-level component, the form component itself. The form component would specify the structure of the form and include each of these interface elements inside of it. Importantly, each component in a React app abides by strict data management principles. Complex, interactive user interfaces often involve complex data and application state. The surface area of React is limited and aimed at giving us the tools to be able to anticipate how our application will look with a given set of circumstances.
  2. Components let you split the UI into independent, reusable pieces, and think about each piece in isolation. This page provides an introduction to the idea of components
  3. Components let you split the UI into independent, reusable pieces, and think about each piece in isolation. This page provides an introduction to the idea of components
  4. Components let you split the UI into independent, reusable pieces, and think about each piece in isolation. This page provides an introduction to the idea of components