SlideShare a Scribd company logo
1 of 30
The happy developer:
SharePoint Framework,
React, and Mindfulness
Olli Jääskeläinen
SPS Bremen 2020
THANK YOU, SPONSORS!
SHAREPOINT SATURDAY BREMEN 2020
#spsbre
Olli Jääskeläinen
Architect at Sulava
Microsoft MVP, MCM, MCT
An organizer for
Office 365 & SharePoint User Group
Finland
SharePoint Saturday Helsinki
A novice at mindfulness
Bouldering, writing code, trying out the
very boring acts of meditation
”Can you guys at least
pretend this is
dangerous?”
Photo credit: @katjajokisalo – Check her Microsoft 365 blog at katjajokisalo.com
Flow of the session
Introduction to
SharePoint
Framework
React and React
components in
SharePoint
Framework
Available ready-
made controls
+ a few bits about mindfulness
Introduction to SharePoint
Framework
Why this stuff is
important?
SharePoint Framework in a
nutshell
Modern way to create user interfaces
Builds on open-source development
tools
You can use React and other
JavaScript frameworks and libraries
SharePoint Framework building
blocks
SharePoint Web Part / Teams Tab
SPFx for Teams personal app and mobile app
support (SPFx 1.10)
SharePoint Extensions
Header, footer, custom button on a list,
field customizer
Single part app pages in SharePoint
What’s coming
SPFx for Office (SPFx 1.10 developer preview)
Extending beyond SharePoint – “M365
Framework?”
Demo
SharePoint Framework customizations
What is mindfulness?
Living the moment
Being aware
Being acceptive
React
Mix JavaScript and XML?
The easy way
out
What is React?
Declarative
Component based  Reusable
Stateful
Declarative nature of React
JSX
XML/HTML like syntax used by
React
Extends the script so that code
and HTML can co-exist
TSX
TypeScript equivalent of JSX
Demo
TSX in React components
Props and State in React
Properties are constant parameters
given to React component
State contains variables that present the
current state of React component
When the data is loaded
When the user interacts
 The component re-renders when state
changes
Props and State in React
Definition
of props
Definition
of state
State can
only be
directly set
in
constructor
State
change is
initiated via
setState
State
values can
be
referenced
Class components vs. functional
components
Class components is the
traditional way to create complex
stateful components
Functional components are simple
Since React 16.8 Hooks
update functional components
can be stateful
Functional React is simple BUT…
Rules of Hooks!  https://reactjs.org/docs/hooks-rules.html
Only call Hooks at Top Level
Don’t call Hooks inside loops, conditions, or nested functions.
React relies on the order in which the hooks are called!
Only call Hooks from React functions
Not from regular JavaScript functions
But I need to fetch data, how can I set the state?
https://www.robinwieruch.de/react-hooks-fetch-data
https://www.npmjs.com/package/use-async-effect
Demo
Class component vs. functional component
Ready-made controls and
components
Don’t reinvent
the wheel
Office UI Fabric React
Office UI Fabric React
Builds on Office UI Fabric
controls making them React
components
Essential components for
Office 365 development
Use them to make your solutions
fit to the suite
https://github.com/OfficeDev/office-ui-fabric-react
Demo
Using Office UI Fabric React components
Icons: https://uifabricicons.azurewebsites.net/
PnP SharePoint Framework Property
Controls
Elio <3
PnP SharePoint Framework Property
Controls
Code Editor
Collection Data
Color Picker
Datetime Picker
Term Picker
People Picker
List Picker
Multiselect
Number
Order
…
https://sharepoint.github.io/sp-dev-fx-property-controls/#getting-started
Demo
PnP SharePoint Framework Property Controls
How to practice mindfulness?
Read/listen/watch mindfulness stuff
Find a way that suits you
Meditation (learning how to keep focus)
Sports (yoga, bouldering, ice hockey,
running)
Key takeaways
SPFx is the most powerful way to customize modern SharePoint
SPFx is extending beyond SP
React is used by SharePoint and Office 365 – why should not you use it as
well?
Build on Office UI Fabric and PnP components and controls
Be mindful – aware of what you are doing and acceptive towards yourself
and others
THANK YOU, SPONSORS!
SHAREPOINT SATURDAY BREMEN 2020
#spsbre

More Related Content

What's hot

Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluIvan Sanders
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSean McLellan
 
Webhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint OnlineWebhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint OnlineNetwoven Inc.
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint FrameworkKushan Lahiru Perera
 
SharePoint Framework
SharePoint FrameworkSharePoint Framework
SharePoint FrameworkVitaly Zhukov
 
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIsO365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIsIvan Sanders
 
Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016Lino Schildenfeld
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer ProductivityKushan Lahiru Perera
 
How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18Dragan Panjkov
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Corey Roth
 
How to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft FlowHow to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft FlowDragan Panjkov
 
Testing SharePoint solutions overview
Testing SharePoint solutions overviewTesting SharePoint solutions overview
Testing SharePoint solutions overviewSpiffy
 
How to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft FlowHow to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft FlowDragan Panjkov
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionNCCOMMS
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenRyan Schouten
 

What's hot (20)

Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - Honolulu
 
RPA with UIPath and Flaui
RPA with UIPath and FlauiRPA with UIPath and Flaui
RPA with UIPath and Flaui
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
 
Webhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint OnlineWebhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint Online
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint Framework
 
SharePoint Framework
SharePoint FrameworkSharePoint Framework
SharePoint Framework
 
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIsO365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
 
Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
 
How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18
 
SP2010 Developer Tools
SP2010 Developer ToolsSP2010 Developer Tools
SP2010 Developer Tools
 
SharePoint 2013 Workflows
SharePoint 2013 WorkflowsSharePoint 2013 Workflows
SharePoint 2013 Workflows
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
 
What's New for SP2010 Devs
What's New for SP2010 DevsWhat's New for SP2010 Devs
What's New for SP2010 Devs
 
How to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft FlowHow to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft Flow
 
Access SharePoint Remotely
Access SharePoint RemotelyAccess SharePoint Remotely
Access SharePoint Remotely
 
Testing SharePoint solutions overview
Testing SharePoint solutions overviewTesting SharePoint solutions overview
Testing SharePoint solutions overview
 
How to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft FlowHow to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft Flow
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
 

Similar to The happy developer: SharePoint Framework, React, and Mindfulness

M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionThomas Daly
 
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdfCreating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdfAlpha BOLD
 
The happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and MindfulnessThe happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and MindfulnessOlli Jääskeläinen
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialThomas Daly
 
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019  PAM365 global developer bootcamp 2019  PA
M365 global developer bootcamp 2019 PAThomas Daly
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019Thomas Daly
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comJeremy Thake
 
Lightning components ver1.0
Lightning components ver1.0Lightning components ver1.0
Lightning components ver1.0Akhil Anil ☁
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beastgueste918732
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformEdureka!
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technologyjoelsef
 
Best React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdfBest React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdfFuGenx Technologies
 
Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...Jayanthi P
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c ENatSistemas
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Developmentryanaoliveira
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-endJordi Anguela
 
Real World Add-in Development for Office365
Real World Add-in Development for Office365Real World Add-in Development for Office365
Real World Add-in Development for Office365Brian Culver
 
Introduction to React Language (1).pptx
Introduction to React Language  (1).pptxIntroduction to React Language  (1).pptx
Introduction to React Language (1).pptxAleksandrosHodo
 
React Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdfReact Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdfGargi Raghav
 

Similar to The happy developer: SharePoint Framework, React, and Mindfulness (20)

M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdfCreating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
 
The happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and MindfulnessThe happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and Mindfulness
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019  PAM365 global developer bootcamp 2019  PA
M365 global developer bootcamp 2019 PA
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Lightning components ver1.0
Lightning components ver1.0Lightning components ver1.0
Lightning components ver1.0
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
 
Best React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdfBest React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdf
 
Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c EN
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Real World Add-in Development for Office365
Real World Add-in Development for Office365Real World Add-in Development for Office365
Real World Add-in Development for Office365
 
Introduction to React Language (1).pptx
Introduction to React Language  (1).pptxIntroduction to React Language  (1).pptx
Introduction to React Language (1).pptx
 
React Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdfReact Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdf
 

More from Olli Jääskeläinen

Customizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-GovernanceCustomizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-GovernanceOlli Jääskeläinen
 
The Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and MindfulnessThe Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and MindfulnessOlli Jääskeläinen
 
Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019Olli Jääskeläinen
 
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöintiLokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöintiOlli Jääskeläinen
 
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...Olli Jääskeläinen
 
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli JääskeläinenCustomizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli JääskeläinenOlli Jääskeläinen
 
New era of customizing site provisioning
New era of customizing site provisioningNew era of customizing site provisioning
New era of customizing site provisioningOlli Jääskeläinen
 
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web partsCustomizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web partsOlli Jääskeläinen
 
Practical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developersPractical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developersOlli Jääskeläinen
 
SPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioningSPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioningOlli Jääskeläinen
 
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli JääskeläinenSPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli JääskeläinenOlli Jääskeläinen
 

More from Olli Jääskeläinen (11)

Customizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-GovernanceCustomizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-Governance
 
The Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and MindfulnessThe Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and Mindfulness
 
Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019
 
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöintiLokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
 
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
 
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli JääskeläinenCustomizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
 
New era of customizing site provisioning
New era of customizing site provisioningNew era of customizing site provisioning
New era of customizing site provisioning
 
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web partsCustomizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
 
Practical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developersPractical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developers
 
SPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioningSPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioning
 
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli JääskeläinenSPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
 

Recently uploaded

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging 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
 
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
 
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
 
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
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
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
 
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
 
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
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Recently uploaded (20)

Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
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...
 
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
 
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
 
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
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
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
 
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
 
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
 
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
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

The happy developer: SharePoint Framework, React, and Mindfulness

  • 1. The happy developer: SharePoint Framework, React, and Mindfulness Olli Jääskeläinen SPS Bremen 2020
  • 2. THANK YOU, SPONSORS! SHAREPOINT SATURDAY BREMEN 2020 #spsbre
  • 3. Olli Jääskeläinen Architect at Sulava Microsoft MVP, MCM, MCT An organizer for Office 365 & SharePoint User Group Finland SharePoint Saturday Helsinki A novice at mindfulness Bouldering, writing code, trying out the very boring acts of meditation
  • 4. ”Can you guys at least pretend this is dangerous?” Photo credit: @katjajokisalo – Check her Microsoft 365 blog at katjajokisalo.com
  • 5. Flow of the session Introduction to SharePoint Framework React and React components in SharePoint Framework Available ready- made controls + a few bits about mindfulness
  • 6. Introduction to SharePoint Framework Why this stuff is important?
  • 7. SharePoint Framework in a nutshell Modern way to create user interfaces Builds on open-source development tools You can use React and other JavaScript frameworks and libraries
  • 8. SharePoint Framework building blocks SharePoint Web Part / Teams Tab SPFx for Teams personal app and mobile app support (SPFx 1.10) SharePoint Extensions Header, footer, custom button on a list, field customizer Single part app pages in SharePoint What’s coming SPFx for Office (SPFx 1.10 developer preview) Extending beyond SharePoint – “M365 Framework?”
  • 10. What is mindfulness? Living the moment Being aware Being acceptive
  • 13. What is React? Declarative Component based  Reusable Stateful
  • 14. Declarative nature of React JSX XML/HTML like syntax used by React Extends the script so that code and HTML can co-exist TSX TypeScript equivalent of JSX
  • 15. Demo TSX in React components
  • 16. Props and State in React Properties are constant parameters given to React component State contains variables that present the current state of React component When the data is loaded When the user interacts  The component re-renders when state changes
  • 17. Props and State in React Definition of props Definition of state State can only be directly set in constructor State change is initiated via setState State values can be referenced
  • 18. Class components vs. functional components Class components is the traditional way to create complex stateful components Functional components are simple Since React 16.8 Hooks update functional components can be stateful
  • 19. Functional React is simple BUT… Rules of Hooks!  https://reactjs.org/docs/hooks-rules.html Only call Hooks at Top Level Don’t call Hooks inside loops, conditions, or nested functions. React relies on the order in which the hooks are called! Only call Hooks from React functions Not from regular JavaScript functions But I need to fetch data, how can I set the state? https://www.robinwieruch.de/react-hooks-fetch-data https://www.npmjs.com/package/use-async-effect
  • 20. Demo Class component vs. functional component
  • 23. Office UI Fabric React Builds on Office UI Fabric controls making them React components Essential components for Office 365 development Use them to make your solutions fit to the suite https://github.com/OfficeDev/office-ui-fabric-react
  • 24. Demo Using Office UI Fabric React components Icons: https://uifabricicons.azurewebsites.net/
  • 25. PnP SharePoint Framework Property Controls Elio <3
  • 26. PnP SharePoint Framework Property Controls Code Editor Collection Data Color Picker Datetime Picker Term Picker People Picker List Picker Multiselect Number Order … https://sharepoint.github.io/sp-dev-fx-property-controls/#getting-started
  • 27. Demo PnP SharePoint Framework Property Controls
  • 28. How to practice mindfulness? Read/listen/watch mindfulness stuff Find a way that suits you Meditation (learning how to keep focus) Sports (yoga, bouldering, ice hockey, running)
  • 29. Key takeaways SPFx is the most powerful way to customize modern SharePoint SPFx is extending beyond SP React is used by SharePoint and Office 365 – why should not you use it as well? Build on Office UI Fabric and PnP components and controls Be mindful – aware of what you are doing and acceptive towards yourself and others
  • 30. THANK YOU, SPONSORS! SHAREPOINT SATURDAY BREMEN 2020 #spsbre

Editor's Notes

  1. https://opax.sharepoint.com/sites/HappyDeveloper Web part, web part properties Extension https://teams.microsoft.com/_#/tab::0cb2943d-e348-4bed-b334-da42f341d15b/General?threadId=19:5e324d50f9504e2d85c9dffd7a3e5ea2@thread.skype&ctx=channel Team information Frame source
  2. Living in the moment – right now. Being aware of your inner state and the world. Being acceptive towards others and yourself.
  3. HelloFunctionalReact.tsx – 1. render() 2. ClassBasedCounter
  4. HelloFunctionalReact.tsx and https://opax.sharepoint.com/sites/HappyDeveloper FunctionalSPComponents.aspx
  5. TeamsChatLink.tsx
  6. OpenTeamsChatWebPart - PropertyFieldPoplePicker