SlideShare a Scribd company logo
1 of 10
Download to read offline
Reaktor 
Mannerheimintie 2 
00100, Helsinki Finland 
tel: +358 9 4152 0200 
www.reaktor.fi 
info@reaktor.fi 
Confidential 
©2014 Reaktor 
All rights reserved 
react + 
mobile 
Case: m.verkkokauppa.com
“low latency is a competitive 
advantage for the verkkokauppa.com 
mobile store”
single page app 
1.HTML 
2.CSS 
3.JavaScript 
4.AJAX requests 
User sees relevant content 
5.User clicks on something 
6.More AJAX requests 
Progressive 
enhancement 
1.HTML 
User sees relevant content 
2.CSS 
3.JavaScript 
4.User clicks on something 
5.AJAX requests
Traditional challenges in 
progressive enhancement 
• Which state is the DOM in as we move from backend 
to frontend? 
• The DOM rendering code is written into two different 
places 
• Rigorous testing causes loads of extra work 
• Easy to forget -> bugs in production
Solution: node.js 
Browser 
React API 
Node.js
React 101 
• Component = Mutable state + a rendering function 
• The rendering function receives the state and returns a corresponding 
DOM tree (a pure function) 
• The rendering function is run in a requestAnimationFrame loop 
• When the state changes, the DOM follows. “One way binding” 
• DOM cannot – or rather doesn’t have to – be changed by hand 
• Performance optimisation built in via Virtual DOM (no manual work!)
Progressive enhancement 
with react 
• A built-in `renderToString` function takes a React component and 
returns a corresponding HTML string. 
• The first rendition is done with renderToString and sent as the HTTP 
response body. 
• The initial state of the component is sent in the same response for use in 
the frontend. 
• When JavaScript is launched in the frontend, React takes up where the 
backend left off.
React’s solutions to challenges 
in progressive enhancement 
• The browser and the server share not only the same code, but also the 
same state. Therefore bugs related to synchronisation are categorically 
avoided. 
• No time wasted fixing bugs or writing tests. 
• Synchronisation code is restricted to one point in the codebase 
• Rest of the codebase becomes simpler. 
• The same React components are used in the backend and in the frontend. 
• Views need to be written only once
Bonuses 
• Initial load is way faster 
• Search engine and social media indexing 
for free 
• No separate tooling needed (such as 
PhantomJS, prerender.io) 
• A relatively small framework 
• Not much to learn 
• Doesn’t decide everything for you 
• Performance built in with the Virtual DOM
thanks. 
Reaktor 
Mannerheimintie 2 
00100, Helsinki Finland 
tel: +358 9 4152 0200 
www.reaktor.fi 
info@reaktor.fi 
Confidential 
©2014 Reaktor 
All rights reserved

More Related Content

What's hot

Increasing performance with Elixir Tasks
Increasing performance with Elixir TasksIncreasing performance with Elixir Tasks
Increasing performance with Elixir TasksJeffrey Chan
 
Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018Matthias Noback
 
Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesLINE Corporation
 
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...LINE Corporation
 
Akka - Developing SEDA Based Applications
Akka - Developing SEDA Based ApplicationsAkka - Developing SEDA Based Applications
Akka - Developing SEDA Based ApplicationsBenjamin Darfler
 
Windows communication foundation (part2) jaliya udagedara
Windows communication foundation (part2) jaliya udagedaraWindows communication foundation (part2) jaliya udagedara
Windows communication foundation (part2) jaliya udagedaraJaliya Udagedara
 
How to Automate Practically Anything with FME Server (Technical Webinar)
How to Automate Practically Anything with FME Server (Technical Webinar)How to Automate Practically Anything with FME Server (Technical Webinar)
How to Automate Practically Anything with FME Server (Technical Webinar)Safe Software
 
Introduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsIntroduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsFederico Torre
 
Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot DocumentationDeepAnshu Sharma
 
RubyConf Taiwan 2016 - Large scale Rails applications
RubyConf Taiwan 2016 - Large scale Rails applicationsRubyConf Taiwan 2016 - Large scale Rails applications
RubyConf Taiwan 2016 - Large scale Rails applicationsFlorian Dutey
 
Advanced application architecture
Advanced application architectureAdvanced application architecture
Advanced application architectureMatthias Noback
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Jeremy Likness
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...WebStackAcademy
 
RubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineFlorian Dutey
 
Synchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesSynchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesJari Voutilainen
 
Improving end user experience using ManageEngine Applications Manager
Improving end user experience using ManageEngine Applications ManagerImproving end user experience using ManageEngine Applications Manager
Improving end user experience using ManageEngine Applications ManagerManageEngine, Zoho Corporation
 
GemStone/S @ Vienna University
GemStone/S @ Vienna University GemStone/S @ Vienna University
GemStone/S @ Vienna University ESUG
 

What's hot (20)

Increasing performance with Elixir Tasks
Increasing performance with Elixir TasksIncreasing performance with Elixir Tasks
Increasing performance with Elixir Tasks
 
Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018Advanced Application Architecture Symfony Live Berlin 2018
Advanced Application Architecture Symfony Live Berlin 2018
 
Webconnection
WebconnectionWebconnection
Webconnection
 
Architecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker servicesArchitecture Sustaining LINE Sticker services
Architecture Sustaining LINE Sticker services
 
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...
Building a company-wide data pipeline on Apache Kafka - engineering for 150 b...
 
Akka - Developing SEDA Based Applications
Akka - Developing SEDA Based ApplicationsAkka - Developing SEDA Based Applications
Akka - Developing SEDA Based Applications
 
Windows communication foundation (part2) jaliya udagedara
Windows communication foundation (part2) jaliya udagedaraWindows communication foundation (part2) jaliya udagedara
Windows communication foundation (part2) jaliya udagedara
 
How to Automate Practically Anything with FME Server (Technical Webinar)
How to Automate Practically Anything with FME Server (Technical Webinar)How to Automate Practically Anything with FME Server (Technical Webinar)
How to Automate Practically Anything with FME Server (Technical Webinar)
 
Introduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic AppsIntroduction to React, Flux, and Isomorphic Apps
Introduction to React, Flux, and Isomorphic Apps
 
Project Dpilot Documentation
Project Dpilot DocumentationProject Dpilot Documentation
Project Dpilot Documentation
 
React Introduction
React IntroductionReact Introduction
React Introduction
 
RubyConf Taiwan 2016 - Large scale Rails applications
RubyConf Taiwan 2016 - Large scale Rails applicationsRubyConf Taiwan 2016 - Large scale Rails applications
RubyConf Taiwan 2016 - Large scale Rails applications
 
Advanced application architecture
Advanced application architectureAdvanced application architecture
Advanced application architecture
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
RubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipeline
 
Synchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM treesSynchronizing application state using Virtual DOM trees
Synchronizing application state using Virtual DOM trees
 
ReactJS Code Impact
ReactJS Code ImpactReactJS Code Impact
ReactJS Code Impact
 
Improving end user experience using ManageEngine Applications Manager
Improving end user experience using ManageEngine Applications ManagerImproving end user experience using ManageEngine Applications Manager
Improving end user experience using ManageEngine Applications Manager
 
GemStone/S @ Vienna University
GemStone/S @ Vienna University GemStone/S @ Vienna University
GemStone/S @ Vienna University
 

Viewers also liked

Classical music
Classical musicClassical music
Classical musicEmilyJHinz
 
So and Mi patterns level 2
So and Mi patterns level 2So and Mi patterns level 2
So and Mi patterns level 2EmilyJHinz
 
So and Mi Patterns Level 1
So and Mi Patterns Level 1So and Mi Patterns Level 1
So and Mi Patterns Level 1EmilyJHinz
 
Changes in the Olympic Uniforms
Changes in the Olympic UniformsChanges in the Olympic Uniforms
Changes in the Olympic Uniformsnickrob445
 
20th century classical music
20th century classical music20th century classical music
20th century classical musicEmilyJHinz
 
Romantic music
Romantic musicRomantic music
Romantic musicEmilyJHinz
 
Boomwhacker songs
Boomwhacker songsBoomwhacker songs
Boomwhacker songsEmilyJHinz
 
Renaissance music
Renaissance musicRenaissance music
Renaissance musicEmilyJHinz
 
比喻 簡報 (2)
比喻  簡報 (2)比喻  簡報 (2)
比喻 簡報 (2)annaks0917
 
小師弟 Powerpoint
小師弟 Powerpoint小師弟 Powerpoint
小師弟 Powerpointannaks0917
 

Viewers also liked (13)

Rhythms
RhythmsRhythms
Rhythms
 
Classical music
Classical musicClassical music
Classical music
 
So and Mi patterns level 2
So and Mi patterns level 2So and Mi patterns level 2
So and Mi patterns level 2
 
So and Mi Patterns Level 1
So and Mi Patterns Level 1So and Mi Patterns Level 1
So and Mi Patterns Level 1
 
Changes in the Olympic Uniforms
Changes in the Olympic UniformsChanges in the Olympic Uniforms
Changes in the Olympic Uniforms
 
20th century classical music
20th century classical music20th century classical music
20th century classical music
 
Romantic music
Romantic musicRomantic music
Romantic music
 
Boomwhacker songs
Boomwhacker songsBoomwhacker songs
Boomwhacker songs
 
Baroque music
Baroque musicBaroque music
Baroque music
 
Renaissance music
Renaissance musicRenaissance music
Renaissance music
 
比喻 簡報 (2)
比喻  簡報 (2)比喻  簡報 (2)
比喻 簡報 (2)
 
小師弟 Powerpoint
小師弟 Powerpoint小師弟 Powerpoint
小師弟 Powerpoint
 
Flight night
Flight nightFlight night
Flight night
 

Similar to React + Mobile

Learning React - I
Learning React - ILearning React - I
Learning React - IMitch Chen
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
 
React for .net developers
React for .net developersReact for .net developers
React for .net developersmacsdickinson
 
Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Massimo Sgrelli
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to ReactAustin Garrod
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !Ritesh Kumar
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsDenis Izmaylov
 
Code splitting with server side react
Code splitting with server side reactCode splitting with server side react
Code splitting with server side reactSaptarshi Chatterjee
 
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Jason Strimpel
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialThomas Daly
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An OverviewJalpesh Vadgama
 
From PHP to React - case study
From PHP to React - case studyFrom PHP to React - case study
From PHP to React - case studySparkbit
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js SimplifiedSunil Yadav
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in ReactTalentica Software
 
Building Web Applications Without a Framework
Building Web Applications Without a FrameworkBuilding Web Applications Without a Framework
Building Web Applications Without a FrameworkAll Things Open
 

Similar to React + Mobile (20)

React js
React jsReact js
React js
 
Learning React - I
Learning React - ILearning React - I
Learning React - I
 
React Tech Salon
React Tech SalonReact Tech Salon
React Tech Salon
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
Meteor + React
Meteor + ReactMeteor + React
Meteor + React
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
React for .net developers
React for .net developersReact for .net developers
React for .net developers
 
Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering Meteor Revolution: From DDP to Blaze Reactive Rendering
Meteor Revolution: From DDP to Blaze Reactive Rendering
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
 
Performance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React ApplicationsPerformance and Scalability Art of Isomorphic React Applications
Performance and Scalability Art of Isomorphic React Applications
 
Code splitting with server side react
Code splitting with server side reactCode splitting with server side react
Code splitting with server side react
 
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
Satisfying Business and Engineering Requirements: Client-server JavaScript, S...
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
Angular Ivy- An Overview
Angular Ivy- An OverviewAngular Ivy- An Overview
Angular Ivy- An Overview
 
From PHP to React - case study
From PHP to React - case studyFrom PHP to React - case study
From PHP to React - case study
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
 
Web Performance & Latest in React
Web Performance & Latest in ReactWeb Performance & Latest in React
Web Performance & Latest in React
 
Building Web Applications Without a Framework
Building Web Applications Without a FrameworkBuilding Web Applications Without a Framework
Building Web Applications Without a Framework
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

React + Mobile

  • 1. Reaktor Mannerheimintie 2 00100, Helsinki Finland tel: +358 9 4152 0200 www.reaktor.fi info@reaktor.fi Confidential ©2014 Reaktor All rights reserved react + mobile Case: m.verkkokauppa.com
  • 2. “low latency is a competitive advantage for the verkkokauppa.com mobile store”
  • 3. single page app 1.HTML 2.CSS 3.JavaScript 4.AJAX requests User sees relevant content 5.User clicks on something 6.More AJAX requests Progressive enhancement 1.HTML User sees relevant content 2.CSS 3.JavaScript 4.User clicks on something 5.AJAX requests
  • 4. Traditional challenges in progressive enhancement • Which state is the DOM in as we move from backend to frontend? • The DOM rendering code is written into two different places • Rigorous testing causes loads of extra work • Easy to forget -> bugs in production
  • 5. Solution: node.js Browser React API Node.js
  • 6. React 101 • Component = Mutable state + a rendering function • The rendering function receives the state and returns a corresponding DOM tree (a pure function) • The rendering function is run in a requestAnimationFrame loop • When the state changes, the DOM follows. “One way binding” • DOM cannot – or rather doesn’t have to – be changed by hand • Performance optimisation built in via Virtual DOM (no manual work!)
  • 7. Progressive enhancement with react • A built-in `renderToString` function takes a React component and returns a corresponding HTML string. • The first rendition is done with renderToString and sent as the HTTP response body. • The initial state of the component is sent in the same response for use in the frontend. • When JavaScript is launched in the frontend, React takes up where the backend left off.
  • 8. React’s solutions to challenges in progressive enhancement • The browser and the server share not only the same code, but also the same state. Therefore bugs related to synchronisation are categorically avoided. • No time wasted fixing bugs or writing tests. • Synchronisation code is restricted to one point in the codebase • Rest of the codebase becomes simpler. • The same React components are used in the backend and in the frontend. • Views need to be written only once
  • 9. Bonuses • Initial load is way faster • Search engine and social media indexing for free • No separate tooling needed (such as PhantomJS, prerender.io) • A relatively small framework • Not much to learn • Doesn’t decide everything for you • Performance built in with the Virtual DOM
  • 10. thanks. Reaktor Mannerheimintie 2 00100, Helsinki Finland tel: +358 9 4152 0200 www.reaktor.fi info@reaktor.fi Confidential ©2014 Reaktor All rights reserved