SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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)
 

Mehr von 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
 

Kürzlich hochgeladen

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
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
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
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
🐬 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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
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
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
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
 
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
 

Kürzlich hochgeladen (20)

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 ...
 
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
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
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...
 
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...
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
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
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
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
 
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
 
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...
 

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

Hinweis der Redaktion

  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!