SlideShare a Scribd company logo
1 of 25
May 20th, 2017
SharePoint Saturday
Madrid
SharePoint Framework & React
Iván Gómez R.
Iván Gómez R.
SharePoint Consultant
Plain Concepts
https://geeks.ms/rockyouroffice365
https://twitter.com/ivangomezrod
Proud father, biker, geek and developer
WiFi Keys for Attendees
 Connect to the wireless network MSFTGUEST
 Click on Event Attendee Code and enter the access code: msevent47pu
What is React?
 “React is an engine for building composable user interfaces using Javascript and
(optionally) XML.”
Engine: why engine? Because of reactive UI rendering that separates state from
the UI presented. You define how state is represented on DOM elements and
how state changes updates DOM.
Creating composable user interfaces: React is oriented to creating UI
components blocks easy to reuse, extend and maintain.
Javascript: React is a pure Javascript library that can be used on the browser, the
server and mobile devices.
Reactive rendering
 Let us write in a declarative way how components should look and behave.
 When the data changes React renders the whole interface again.
 React uses an in-memory lightweight representation of the DOM (virtual DOM).
 Manipulating virtual DOM is faster than manipulating real DOM.
 React compares current state of the UI with the desired state and perform the
minimal set of real DOM changes.
 This is why React is the most fast and efficient framework.
Component-Oriented development
 Easy to create complex made of smaller components
 Written in plain JavaScript instaead of template languages or the HTML directives.
 Separtation of concerns
Our first react component
class Hello extends React.Component<any,any>{
render(){
return <h1>Ola k ase</h1>
}
}
Our first react component with dynamic values
class Hello extends React.Component<any, any>{
private message: string = "Welcome to SPS!";
render() {
return <h1>Message {this.message}</h1>
}
}
Component hierarchy
 Divide all UI into nested components.
 Components should be small and have single concern.
 If a component grows, it should be broken into smaller components.
 Components usually represent one piece of your data model.
Props
 Props are of key importance in component composition
 Mechanism used for passing data from parent to child components.
 Props can’t be changed inside the component.
 Component “configuration”
Our first react component with props
export interface HelloProps { message: string; user: string; }
class Hello extends React.Component<HelloProps, any> {
render() {
return <h1>Hello {this.props.user}, you have a message:
{this.props.message}!</h1>;
}
}
Using our first react component
ReactDOM.render(
<Hello user="Iván" message="React is better than angular" />,
document.getElementById("example")
);
State
 Mutable data that represents component internal state.
 When the state is updated, the component itself and its children are re-rendered.
 State is initialized in component constructor.
 Events can change component state.
Events
 React implements a synthetic event system.
 It achieves high performance by automatically using event delegation.
 Single event listener is attached to the root of the document.
 Event listeners automatically are removed when component unmounts.
React component with state and events
export class Search extends React.Component<InputProps, SearchState>{
constructor() {
super();
this.handleChange = this.handleChange.bind(this);
this.state = { searchTerm: "React" };
}
private handleChange(event: any): void {
this.setState({ searchTerm: event.target.value });
}
render() {
return (
<div>
Search term: <input type="search" value={this.state.searchTerm}
onChange={this.handleChange}} />
</div>
);
}
}
JSX
 Looks like HTML, but it is not HTML.
 Tags attributes are camel cased.
 All elements must be balanced.
 Attributes names are based on the DOM API.
 Single root node.
Component lifecycle
Resources
 https://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-overview
 https://dev.office.com/fabric
 https://facebook.github.io/react/
 https://www.typescriptlang.org/
 https://react.rocks/
 https://geeks.ms/rockyouroffice365/
Please, fill your SPS Madrid
passport if you want to
participate.
You can win one of these gifts:
Raffle
10
9
8
Odor Odor@winterfell.com
Gold sponsors ______________
Silver sponsors
Bronze sponsors
Collaborate
Platinum sponsor

More Related Content

What's hot

Leveling up with AngularJS
Leveling up with AngularJSLeveling up with AngularJS
Leveling up with AngularJSAustin Condiff
 
11 wp7 designing applicationsusingexpressionblend
11 wp7   designing applicationsusingexpressionblend11 wp7   designing applicationsusingexpressionblend
11 wp7 designing applicationsusingexpressionblendTao Wang
 
Building Micro Services with Spring Cloud and Docker
Building Micro Services with Spring Cloud and DockerBuilding Micro Services with Spring Cloud and Docker
Building Micro Services with Spring Cloud and DockerLouis Houghton
 
Create folder in microsoft office 365 share point using mule esb
Create folder in microsoft office 365 share point using mule esbCreate folder in microsoft office 365 share point using mule esb
Create folder in microsoft office 365 share point using mule esbSanjeet Pandey
 
Exploring the continuum between Cordova and React Native
Exploring the continuum between Cordova and React NativeExploring the continuum between Cordova and React Native
Exploring the continuum between Cordova and React NativeSimon MacDonald
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub applicationD.Rajesh Kumar
 
Clean VIP (Clean Swift) architecture
Clean VIP (Clean Swift) architectureClean VIP (Clean Swift) architecture
Clean VIP (Clean Swift) architectureJianbin LIN
 

What's hot (12)

Mule connectors
Mule  connectorsMule  connectors
Mule connectors
 
iOS Development (Part 2)
iOS Development (Part 2)iOS Development (Part 2)
iOS Development (Part 2)
 
Leveling up with AngularJS
Leveling up with AngularJSLeveling up with AngularJS
Leveling up with AngularJS
 
11 wp7 designing applicationsusingexpressionblend
11 wp7   designing applicationsusingexpressionblend11 wp7   designing applicationsusingexpressionblend
11 wp7 designing applicationsusingexpressionblend
 
Building Micro Services with Spring Cloud and Docker
Building Micro Services with Spring Cloud and DockerBuilding Micro Services with Spring Cloud and Docker
Building Micro Services with Spring Cloud and Docker
 
Mule salesforce
Mule  salesforceMule  salesforce
Mule salesforce
 
Create folder in microsoft office 365 share point using mule esb
Create folder in microsoft office 365 share point using mule esbCreate folder in microsoft office 365 share point using mule esb
Create folder in microsoft office 365 share point using mule esb
 
Meteor
MeteorMeteor
Meteor
 
Exploring the continuum between Cordova and React Native
Exploring the continuum between Cordova and React NativeExploring the continuum between Cordova and React Native
Exploring the continuum between Cordova and React Native
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub application
 
5. servlets
5. servlets5. servlets
5. servlets
 
Clean VIP (Clean Swift) architecture
Clean VIP (Clean Swift) architectureClean VIP (Clean Swift) architecture
Clean VIP (Clean Swift) architecture
 

Similar to SharePoint Framework y React

REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdfArthyR3
 
React Interview Questions and Answers by Scholarhat
React Interview Questions and Answers by ScholarhatReact Interview Questions and Answers by Scholarhat
React Interview Questions and Answers by ScholarhatScholarhat
 
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 ITnamespaceit
 
Introduction to React JS.pptx
Introduction to React JS.pptxIntroduction to React JS.pptx
Introduction to React JS.pptxSHAIKIRFAN715544
 
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 .pptxSHAIKIRFAN715544
 
React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥Remo Jansen
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorialMohammed Fazuluddin
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with ReactNetcetera
 
React js - The Core Concepts
React js - The Core ConceptsReact js - The Core Concepts
React js - The Core ConceptsDivyang Bhambhani
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react jsStephieJohn
 
Getting started with react &amp; redux
Getting started with react &amp; reduxGetting started with react &amp; redux
Getting started with react &amp; reduxGirish Talekar
 
React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)Chiew Carol
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?BOSC Tech Labs
 

Similar to SharePoint Framework y React (20)

ReactJs
ReactJsReactJs
ReactJs
 
REACTJS.pdf
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
 
Copy of React_JS_Notes.pdf
Copy of React_JS_Notes.pdfCopy of React_JS_Notes.pdf
Copy of React_JS_Notes.pdf
 
React Interview Questions and Answers by Scholarhat
React Interview Questions and Answers by ScholarhatReact Interview Questions and Answers by Scholarhat
React Interview Questions and Answers by Scholarhat
 
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
 
Introduction to React JS.pptx
Introduction to React JS.pptxIntroduction to React JS.pptx
Introduction to React JS.pptx
 
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
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥
 
React JS - A quick introduction tutorial
React JS - A quick introduction tutorialReact JS - A quick introduction tutorial
React JS - A quick introduction tutorial
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with React
 
reactJS
reactJSreactJS
reactJS
 
React js - The Core Concepts
React js - The Core ConceptsReact js - The Core Concepts
React js - The Core Concepts
 
Fundamental concepts of react js
Fundamental concepts of react jsFundamental concepts of react js
Fundamental concepts of react js
 
Getting started with react &amp; redux
Getting started with react &amp; reduxGetting started with react &amp; redux
Getting started with react &amp; redux
 
ReactJS.pptx
ReactJS.pptxReactJS.pptx
ReactJS.pptx
 
React
ReactReact
React
 
React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)
 
What are the components in React?
What are the components in React?What are the components in React?
What are the components in React?
 
React js
React jsReact js
React js
 

More from SUGES (SharePoint Users Group España)

Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...SUGES (SharePoint Users Group España)
 
How to execute SharePoint 2016 upgrade strategy and ensure business continuity
How to execute SharePoint 2016 upgrade strategy and ensure business continuityHow to execute SharePoint 2016 upgrade strategy and ensure business continuity
How to execute SharePoint 2016 upgrade strategy and ensure business continuitySUGES (SharePoint Users Group España)
 

More from SUGES (SharePoint Users Group España) (19)

SharePoint Saturday Madrid 2017 - KeyNote
SharePoint Saturday Madrid 2017 - KeyNoteSharePoint Saturday Madrid 2017 - KeyNote
SharePoint Saturday Madrid 2017 - KeyNote
 
How to use SharePoint PnP assets in real world use cases
How to use SharePoint PnP assets in real world use casesHow to use SharePoint PnP assets in real world use cases
How to use SharePoint PnP assets in real world use cases
 
Domotica #Skype4 b #IoT #Azure #Windows10IoTCore
Domotica #Skype4 b #IoT #Azure #Windows10IoTCoreDomotica #Skype4 b #IoT #Azure #Windows10IoTCore
Domotica #Skype4 b #IoT #Azure #Windows10IoTCore
 
Beyond cards: How to get the most out of Delve
Beyond cards: How to get the most out of DelveBeyond cards: How to get the most out of Delve
Beyond cards: How to get the most out of Delve
 
CDNs para el SharePoint Framework (SPFx)
CDNs para el SharePoint Framework (SPFx)CDNs para el SharePoint Framework (SPFx)
CDNs para el SharePoint Framework (SPFx)
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
 
Probots: Azure Bots y Project Online
Probots: Azure Bots y Project OnlineProbots: Azure Bots y Project Online
Probots: Azure Bots y Project Online
 
Cómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFxCómo gestionar el ciclo de vida de soluciones SPFx
Cómo gestionar el ciclo de vida de soluciones SPFx
 
Extending Microsoft Teams
Extending Microsoft TeamsExtending Microsoft Teams
Extending Microsoft Teams
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
 
How to execute SharePoint 2016 upgrade strategy and ensure business continuity
How to execute SharePoint 2016 upgrade strategy and ensure business continuityHow to execute SharePoint 2016 upgrade strategy and ensure business continuity
How to execute SharePoint 2016 upgrade strategy and ensure business continuity
 
Bots & Teams: el poder de Grayskull
Bots & Teams: el poder de GrayskullBots & Teams: el poder de Grayskull
Bots & Teams: el poder de Grayskull
 
Análisis de sentimiento con Flow y Text Analytics
Análisis de sentimiento con Flow y Text AnalyticsAnálisis de sentimiento con Flow y Text Analytics
Análisis de sentimiento con Flow y Text Analytics
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Text Analytics y Machine Learning como sistema de catalogación
Text Analytics y Machine Learning como sistema de catalogaciónText Analytics y Machine Learning como sistema de catalogación
Text Analytics y Machine Learning como sistema de catalogación
 
Proyecto 360: Combinar lo mejor de Azure y Office 365
Proyecto 360: Combinar lo mejor de Azure y Office 365Proyecto 360: Combinar lo mejor de Azure y Office 365
Proyecto 360: Combinar lo mejor de Azure y Office 365
 
Empowering SharePoint with search capabilities
Empowering SharePoint with search capabilitiesEmpowering SharePoint with search capabilities
Empowering SharePoint with search capabilities
 
PowerApps, Flow y Power BI: Gestiona tus procesos corporativos.
PowerApps, Flow y Power BI: Gestiona tus procesos corporativos.PowerApps, Flow y Power BI: Gestiona tus procesos corporativos.
PowerApps, Flow y Power BI: Gestiona tus procesos corporativos.
 
Aprovisionamiento remoto de SharePoint con Azure Functions
Aprovisionamiento remoto de SharePoint con Azure FunctionsAprovisionamiento remoto de SharePoint con Azure Functions
Aprovisionamiento remoto de SharePoint con Azure Functions
 

Recently uploaded

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
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 pragmaticsAndrey Dotsenko
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
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
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

SharePoint Framework y React

  • 1. May 20th, 2017 SharePoint Saturday Madrid SharePoint Framework & React Iván Gómez R.
  • 2. Iván Gómez R. SharePoint Consultant Plain Concepts https://geeks.ms/rockyouroffice365 https://twitter.com/ivangomezrod Proud father, biker, geek and developer
  • 3. WiFi Keys for Attendees  Connect to the wireless network MSFTGUEST  Click on Event Attendee Code and enter the access code: msevent47pu
  • 4.
  • 5.
  • 6. What is React?  “React is an engine for building composable user interfaces using Javascript and (optionally) XML.” Engine: why engine? Because of reactive UI rendering that separates state from the UI presented. You define how state is represented on DOM elements and how state changes updates DOM. Creating composable user interfaces: React is oriented to creating UI components blocks easy to reuse, extend and maintain. Javascript: React is a pure Javascript library that can be used on the browser, the server and mobile devices.
  • 7. Reactive rendering  Let us write in a declarative way how components should look and behave.  When the data changes React renders the whole interface again.  React uses an in-memory lightweight representation of the DOM (virtual DOM).  Manipulating virtual DOM is faster than manipulating real DOM.  React compares current state of the UI with the desired state and perform the minimal set of real DOM changes.  This is why React is the most fast and efficient framework.
  • 8. Component-Oriented development  Easy to create complex made of smaller components  Written in plain JavaScript instaead of template languages or the HTML directives.  Separtation of concerns
  • 9. Our first react component class Hello extends React.Component<any,any>{ render(){ return <h1>Ola k ase</h1> } }
  • 10. Our first react component with dynamic values class Hello extends React.Component<any, any>{ private message: string = "Welcome to SPS!"; render() { return <h1>Message {this.message}</h1> } }
  • 11. Component hierarchy  Divide all UI into nested components.  Components should be small and have single concern.  If a component grows, it should be broken into smaller components.  Components usually represent one piece of your data model.
  • 12. Props  Props are of key importance in component composition  Mechanism used for passing data from parent to child components.  Props can’t be changed inside the component.  Component “configuration”
  • 13. Our first react component with props export interface HelloProps { message: string; user: string; } class Hello extends React.Component<HelloProps, any> { render() { return <h1>Hello {this.props.user}, you have a message: {this.props.message}!</h1>; } }
  • 14. Using our first react component ReactDOM.render( <Hello user="Iván" message="React is better than angular" />, document.getElementById("example") );
  • 15. State  Mutable data that represents component internal state.  When the state is updated, the component itself and its children are re-rendered.  State is initialized in component constructor.  Events can change component state.
  • 16. Events  React implements a synthetic event system.  It achieves high performance by automatically using event delegation.  Single event listener is attached to the root of the document.  Event listeners automatically are removed when component unmounts.
  • 17. React component with state and events export class Search extends React.Component<InputProps, SearchState>{ constructor() { super(); this.handleChange = this.handleChange.bind(this); this.state = { searchTerm: "React" }; } private handleChange(event: any): void { this.setState({ searchTerm: event.target.value }); } render() { return ( <div> Search term: <input type="search" value={this.state.searchTerm} onChange={this.handleChange}} /> </div> ); } }
  • 18. JSX  Looks like HTML, but it is not HTML.  Tags attributes are camel cased.  All elements must be balanced.  Attributes names are based on the DOM API.  Single root node.
  • 20.
  • 21.
  • 22. Resources  https://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-overview  https://dev.office.com/fabric  https://facebook.github.io/react/  https://www.typescriptlang.org/  https://react.rocks/  https://geeks.ms/rockyouroffice365/
  • 23.
  • 24. Please, fill your SPS Madrid passport if you want to participate. You can win one of these gifts: Raffle 10 9 8 Odor Odor@winterfell.com
  • 25. Gold sponsors ______________ Silver sponsors Bronze sponsors Collaborate Platinum sponsor

Editor's Notes

  1. This slide is mandatory. Please do not remove.
  2. Hipsters Historia desarrollo SP Typescript Falta material con typescript
  3. This slide is mandatory. Please do not remove and try to use it during Q&A at the end of your session. Thank you!