SlideShare a Scribd company logo
1 of 28
Intro to React
What is React?
Library for building user interfaces
View
Component Based
React is Awesome!
Declarative
Fast
Simple
But First…
JSX and ES6
Hello, world!
Component
Props
{ … }
<Element/>
State
{ … }
There are actually a few different
ways to create components
Class Component
Functional Component
or
Strive to use
stateless functional
components
whenever possible.
Rendering
Props
State
State
See the Calculator
Working
http://codepen.io/ewestfal/pen/XNWRdR
Component Lifecycle
Mounting
Updating
Unmounting
Mounting
constructor()
componentWillMount()
render()
componentDidMount()
{
Updating
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
{
Unmounting componentWillUnmount()
{
Data flow is unidirectional.
All data flows down the component hierarchy
Virtual DOM
“You’re on a need-to-know basis…
and you don’t need to know.”
That’s
it…simple.
Components
Props
State
{remember
Vibrant Ecosystem
Learning More
https://facebook.github.io/react/
https://egghead.io/technologies/react
Eric Westfall
ewestfal@iu.edu

More Related Content

What's hot (20)

reactJS
reactJSreactJS
reactJS
 
Learn react-js
Learn react-jsLearn react-js
Learn react-js
 
Introduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace ITIntroduction to React JS for beginners | Namespace IT
Introduction to React JS for beginners | Namespace IT
 
ReactJS presentation
ReactJS presentationReactJS presentation
ReactJS presentation
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
React js
React jsReact js
React js
 
ReactJS
ReactJSReactJS
ReactJS
 
Reactjs
Reactjs Reactjs
Reactjs
 
React workshop
React workshopReact workshop
React workshop
 
React js programming concept
React js programming conceptReact js programming concept
React js programming concept
 
An introduction to React.js
An introduction to React.jsAn introduction to React.js
An introduction to React.js
 
Introduction to React JS
Introduction to React JSIntroduction to React JS
Introduction to React JS
 
Reactjs
ReactjsReactjs
Reactjs
 
React JS part 1
React JS part 1React JS part 1
React JS part 1
 
Introduction to react_js
Introduction to react_jsIntroduction to react_js
Introduction to react_js
 
A Brief Introduction to React.js
A Brief Introduction to React.jsA Brief Introduction to React.js
A Brief Introduction to React.js
 
Basics of React Hooks.pptx.pdf
Basics of React Hooks.pptx.pdfBasics of React Hooks.pptx.pdf
Basics of React Hooks.pptx.pdf
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
React js - The Core Concepts
React js - The Core ConceptsReact js - The Core Concepts
React js - The Core Concepts
 

Viewers also liked

How to Use Mobile to Build a Brand Customers Love - Digital Summit Seattle
How to Use Mobile to Build a Brand Customers Love - Digital Summit SeattleHow to Use Mobile to Build a Brand Customers Love - Digital Summit Seattle
How to Use Mobile to Build a Brand Customers Love - Digital Summit SeattleApptentive
 
Intro To React Native
Intro To React NativeIntro To React Native
Intro To React NativeFITC
 
REFCHK Presentación de Servicios 2017
REFCHK Presentación de Servicios 2017REFCHK Presentación de Servicios 2017
REFCHK Presentación de Servicios 2017Fernando Nunez
 
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)Fred de GOMBERT
 
United Grinding - Studer - CNC Universal Grinders - Flex Load Automationn
United Grinding - Studer - CNC Universal Grinders - Flex Load AutomationnUnited Grinding - Studer - CNC Universal Grinders - Flex Load Automationn
United Grinding - Studer - CNC Universal Grinders - Flex Load AutomationnMachine Tool Systems Inc.
 
R. Villano - Pubblicazioni rotariane
R. Villano - Pubblicazioni rotarianeR. Villano - Pubblicazioni rotariane
R. Villano - Pubblicazioni rotarianeRaimondo Villano
 
A depressao como mal estar contemporaneo
A depressao como mal estar contemporaneoA depressao como mal estar contemporaneo
A depressao como mal estar contemporaneoFabíola Mapin
 
Temperatura superficial del mar del perú 28.03.2017
Temperatura superficial del mar del perú 28.03.2017Temperatura superficial del mar del perú 28.03.2017
Temperatura superficial del mar del perú 28.03.2017Manuel Placido
 
Developing a Long-Term Digital Strategy
Developing a Long-Term Digital StrategyDeveloping a Long-Term Digital Strategy
Developing a Long-Term Digital StrategyOne North
 
Apprenticeship Statistics Report 2017
Apprenticeship Statistics Report 2017Apprenticeship Statistics Report 2017
Apprenticeship Statistics Report 2017Legalo Ltd
 
GBMiners Vision & Leadership Team
GBMiners Vision & Leadership TeamGBMiners Vision & Leadership Team
GBMiners Vision & Leadership TeamGBMiners.com
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門Etsuji Nakai
 
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発LINE Corporation
 
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...Soymimarca
 
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsTop 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsCloudera, Inc.
 
Configuration beyond Java EE 8
Configuration beyond Java EE 8Configuration beyond Java EE 8
Configuration beyond Java EE 8Anatole Tresch
 

Viewers also liked (20)

How to Use Mobile to Build a Brand Customers Love - Digital Summit Seattle
How to Use Mobile to Build a Brand Customers Love - Digital Summit SeattleHow to Use Mobile to Build a Brand Customers Love - Digital Summit Seattle
How to Use Mobile to Build a Brand Customers Love - Digital Summit Seattle
 
Intro To React Native
Intro To React NativeIntro To React Native
Intro To React Native
 
REFCHK Presentación de Servicios 2017
REFCHK Presentación de Servicios 2017REFCHK Presentación de Servicios 2017
REFCHK Presentación de Servicios 2017
 
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)
Le PIM, levier d'une transformation digitale réussie et efficace (Akeneo + Eram)
 
United Grinding - Studer - CNC Universal Grinders - Flex Load Automationn
United Grinding - Studer - CNC Universal Grinders - Flex Load AutomationnUnited Grinding - Studer - CNC Universal Grinders - Flex Load Automationn
United Grinding - Studer - CNC Universal Grinders - Flex Load Automationn
 
How to Combat EMV Chargebacks
How to Combat EMV Chargebacks How to Combat EMV Chargebacks
How to Combat EMV Chargebacks
 
R. Villano - Pubblicazioni rotariane
R. Villano - Pubblicazioni rotarianeR. Villano - Pubblicazioni rotariane
R. Villano - Pubblicazioni rotariane
 
A depressao como mal estar contemporaneo
A depressao como mal estar contemporaneoA depressao como mal estar contemporaneo
A depressao como mal estar contemporaneo
 
Temperatura superficial del mar del perú 28.03.2017
Temperatura superficial del mar del perú 28.03.2017Temperatura superficial del mar del perú 28.03.2017
Temperatura superficial del mar del perú 28.03.2017
 
Eski Türklerde Spor
Eski Türklerde SporEski Türklerde Spor
Eski Türklerde Spor
 
Developing a Long-Term Digital Strategy
Developing a Long-Term Digital StrategyDeveloping a Long-Term Digital Strategy
Developing a Long-Term Digital Strategy
 
Apprenticeship Statistics Report 2017
Apprenticeship Statistics Report 2017Apprenticeship Statistics Report 2017
Apprenticeship Statistics Report 2017
 
Electricidad
ElectricidadElectricidad
Electricidad
 
GBMiners Vision & Leadership Team
GBMiners Vision & Leadership TeamGBMiners Vision & Leadership Team
GBMiners Vision & Leadership Team
 
How To Be A Citizen Activist - Guide for Taking Political Action NOW
How To Be A Citizen Activist - Guide for Taking Political Action NOWHow To Be A Citizen Activist - Guide for Taking Political Action NOW
How To Be A Citizen Activist - Guide for Taking Political Action NOW
 
RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門RHEL7/CentOS7 NetworkManager徹底入門
RHEL7/CentOS7 NetworkManager徹底入門
 
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
ベイズ推定とDeep Learningを使用したレコメンドエンジン開発
 
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...
Soy mi marca o no soy nada, lo mejor de la cosecha de 2013 en marca personal ...
 
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark ApplicationsTop 5 Mistakes to Avoid When Writing Apache Spark Applications
Top 5 Mistakes to Avoid When Writing Apache Spark Applications
 
Configuration beyond Java EE 8
Configuration beyond Java EE 8Configuration beyond Java EE 8
Configuration beyond Java EE 8
 

Similar to Intro to React

Adding a modern twist to legacy web applications
Adding a modern twist to legacy web applicationsAdding a modern twist to legacy web applications
Adding a modern twist to legacy web applicationsJeff Durta
 
React JS and Redux
React JS and ReduxReact JS and Redux
React JS and ReduxGlib Kechyn
 
Combining Angular and React Together
Combining Angular and React TogetherCombining Angular and React Together
Combining Angular and React TogetherSebastian Pederiva
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Previewvaluebound
 
ReactJS - A quick introduction to Awesomeness
ReactJS - A quick introduction to AwesomenessReactJS - A quick introduction to Awesomeness
ReactJS - A quick introduction to AwesomenessRonny Haase
 
React - Start learning today
React - Start learning today React - Start learning today
React - Start learning today Nitin Tyagi
 
Corso su ReactJS
Corso su ReactJSCorso su ReactJS
Corso su ReactJSLinkMe Srl
 
Intro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptIntro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptjasonsich
 
OttawaJS - React
OttawaJS - ReactOttawaJS - React
OttawaJS - Reactrbl002
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2ukdpe
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkBill Lyons
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2Eric Nelson
 
Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]GDSC UofT Mississauga
 
Effective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsEffective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsSrikanth Shenoy
 
MVC and Entity Framework
MVC and Entity FrameworkMVC and Entity Framework
MVC and Entity FrameworkJames Johnson
 

Similar to Intro to React (20)

Adding a modern twist to legacy web applications
Adding a modern twist to legacy web applicationsAdding a modern twist to legacy web applications
Adding a modern twist to legacy web applications
 
React JS and Redux
React JS and ReduxReact JS and Redux
React JS and Redux
 
Combining Angular and React Together
Combining Angular and React TogetherCombining Angular and React Together
Combining Angular and React Together
 
React JS: A Secret Preview
React JS: A Secret PreviewReact JS: A Secret Preview
React JS: A Secret Preview
 
Internal workshop react-js-mruiz
Internal workshop react-js-mruizInternal workshop react-js-mruiz
Internal workshop react-js-mruiz
 
ReactJS - A quick introduction to Awesomeness
ReactJS - A quick introduction to AwesomenessReactJS - A quick introduction to Awesomeness
ReactJS - A quick introduction to Awesomeness
 
React - Start learning today
React - Start learning today React - Start learning today
React - Start learning today
 
BackboneJS + ReactJS
BackboneJS + ReactJSBackboneJS + ReactJS
BackboneJS + ReactJS
 
ReactJS (1)
ReactJS (1)ReactJS (1)
ReactJS (1)
 
Corso su ReactJS
Corso su ReactJSCorso su ReactJS
Corso su ReactJS
 
Intro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptIntro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScript
 
OttawaJS - React
OttawaJS - ReactOttawaJS - React
OttawaJS - React
 
Entity Framework V1 and V2
Entity Framework V1 and V2Entity Framework V1 and V2
Entity Framework V1 and V2
 
Intro to React.js
Intro to React.jsIntro to React.js
Intro to React.js
 
EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 
Entity Framework v1 and v2
Entity Framework v1 and v2Entity Framework v1 and v2
Entity Framework v1 and v2
 
Intro react js
Intro react jsIntro react js
Intro react js
 
Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]Full Stack React Workshop [CSSC x GDSC]
Full Stack React Workshop [CSSC x GDSC]
 
Effective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjectsEffective JavaFX architecture with FxObjects
Effective JavaFX architecture with FxObjects
 
MVC and Entity Framework
MVC and Entity FrameworkMVC and Entity Framework
MVC and Entity Framework
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 

Editor's Notes

  1. Eric Westfall, Chief Software Architect at Indiana University and I’m going to introduce you all to React Before we get started, how many of you have used React or are using it? For those who don’t know, I spent a number of years working on Kuali software, and in the original Kuali software we used Java technologies and Apache Struts to implement our web application functionality. This included using JSP and taglibs, I remember thinking back then, “this is just horrible, there has to be a better way”. First of all the syntax and capabilities of JSP are just awful, second we were doing all of this work to track state in our server side code, we actually had code that would track the current state of things like tabs and whether they were open or not on the server side, it was awful I think that managing a large amount of state that can be modified or changed in multiple ways is one of the hardest things about programming and causes the bugs So I was wishing for that better way to develop user interfaces…React is that better way
  2. It’s not a framework! Unlike AngularJS It’s also not MVC
  3. Many people think of React as the “V” in MVC, it for building application UI’s ‘
  4. Create your apps as a hierarchy of components
  5. We’ve been using React for development on my team at IU for over a year now and it’s changed the way that we approach application development, it has truly been revolutionary and refreshing for our team It’s really a joy to work with It’s declarative – when you implement your components you are saying “this is how I want it to look”, you simply write your render method and you don’t have to worry about telling the system when it should be rendered It’s simple – there are really only a handful of concepts you have to understand to understand how react works, and I’m going to try to cover most all of those in this 20 minute segment It’s fast, both from a speed of development perspective, but also a performance/execution perspective, it utilizes a technique that I will talk about later which allows it to be very performant
  6. Our examples will contain javascript code that includes both JSX and ES6 JSX is a syntax extension to javascript which support and XML-like syntax ES6 (aka ES2015) is an updated version of javascript Includes classes, arrow notation for functions, and a bunch of other stuff So how does this stuff actually get executed by the browser? It doesn’t! we use a compiler called babel to transpile it specifics are beyond the scope of this intro Just know that you will see both of these in the examples, and I’ll explain it as we go through
  7. Pure functions are just simpler and easier to understand Avoids the use of classes Helps to spot code bloat by making it easier to see code that should be refactored into simpler components They are super easy to test
  8. Each component goes through a lifecycle and there are various hooks available that can be implemented on a component class for tapping into that lifecycle
  9. These methods are called when an instance of a component is being created and inserted into the DOM
  10. Benefits JS applications must manage more and more state these days, this ever changing state is hard to manage Leads to situations where it is difficult to understand what is happening with the state in your application Unidirectional data flow is much easier to reason about and program with because data flow is deterministic and predictable
  11. While the core of react is very simple, it has a large and vibrant ecosystem of other libraries that it can be paired with Including libraries to handle routing, forms, redux (which we already mentioned briefly), bootstrap, and much more