SlideShare a Scribd company logo
React.js
(and how it changed our thinking about UI)
Who am I?
Marcin Grzywaczewski
@Killavus
Working @ Arkency over a year
Background
• Over 50~ micro apps in the project
• Mostly direct mapping between screen and app
• ‘Smart’ backend
Developing UI was slow
• Handlebars Templates
• jQuery DOM manipulation
• Binding events
• Redrawing
Error-prone.
Exhausting.
No fun at all :(
React.js
• Declarative UI
• No manipulation of DOM by hand
• UI made of composable components
• Stateful
Declarative UI
• Components have properties (props) and state.
• You pass props when constructing component.
They are immutable.
• Whenever you set state of a component, it is
rendered again.
But re-render is slow!
• React makes changes in his VDOM (Virtual
DOM)
• Then it compares actual DOM with VDOM,
making minimal re-renders as possible.
Performance as a
bonus. Great!
First React example:
https://gist.github.com/Killavus/
a162468c7ad9dadaa14f
Components are self-
contained
• Imagine you implement a list of elements.
• You create ItemList component, and Item
component
• You can re-use this part everywhere in the app.
It does not depend on ItemList at all.
Components can remain
open
• Every component has 2 arguments: props and
children
• You can access the second argument in
@props.children
Example:
https://gist.github.com/Killavus/
29c1715aafad66bf8f57
Binding events
• via props (onChange, onClick etc.)
• React takes care of binding/unbinding during
updating
• No more double event handler invocation
Adding expand/hide feature:
https://gist.github.com/Killavus/
4ff03774c2226c4b3a5f
More?
• You can reference owned (rendered in your
render function) via ref props
• You can access real DOM using getDOMNode()
• You can plug in to lifecycle of the component
It changed our thinking
about UI
• Creating UI is faster
• Less error-prone
• We can focus on what we like - trying new
things.
Future?
• Domain streams - every part of the app gets
notified about domain changes of a given
domain object
• Stand-alone components: they emit an event to
request for its state (we have it)
• Good technique to deal with state passing - we
have few ideas here
Interested?
We are making front-end techniques course.
Course:
• Free!
• We’re going to tell you about:
• Refactoring to micro-apps (visit our blog, the post is already here)
• Using React.js in your components
• Techniques to deal with ‘front-end first methodology’
• Segregating apps by it’s purpose (and with React and RxJS it’s
easy)
• Many small apps vs. one big app
• Domain streams
Visit blog.arkency.com and register!
Direct link: http://blog.arkency.com/
2014/07/6-front-end-techniques-for-rails-
developers-part-i-from-big-ball-of-mud-to-
separated-concerns/
Thank you!
Questions?

More Related Content

What's hot (20)

PDF
React server side rendering performance
Nick Dreckshage
 
PDF
Azure Container Apps
ninefyi
 
PPTX
React for .net developers
macsdickinson
 
PDF
Tech Talk on ReactJS
Atlogys Technical Consulting
 
PDF
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Fwdays
 
PPTX
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
PDF
Stripe con 2021 UI stack
MaximeRainville1
 
PDF
Deep dive into Vue.js
선협 이
 
PDF
JHipster
Yuen-Kuei Hsueh
 
PPTX
Web application I have always dreamt of
Victor_Cr
 
PPTX
React native - React(ive) Way To Build Native Mobile Apps
Jimit Shah
 
PPTX
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
Srijan Technologies
 
PPTX
Building API in the cloud using Azure Functions
Aleksandar Bozinovski
 
PDF
React Fundamentals - Jakarta JS, Apr 2016
Simon Sturmer
 
PPTX
JavaScript innovaties: ECMAScript 6 & 7
Rick Beerendonk
 
PPTX
006. React - Redux framework
Binh Quan Duc
 
PDF
introduction to Vue.js 3
ArezooKmn
 
PPTX
005. a React project structure
Binh Quan Duc
 
PDF
Web Components Everywhere
Ilia Idakiev
 
PDF
Write Once, Run Everywhere - Ember.js Munich
Mike North
 
React server side rendering performance
Nick Dreckshage
 
Azure Container Apps
ninefyi
 
React for .net developers
macsdickinson
 
Tech Talk on ReactJS
Atlogys Technical Consulting
 
Michael North "Ember.js 2 - Future-friendly ambitious apps, that scale!"
Fwdays
 
ReactJS.NET - Fast and Scalable Single Page Applications
Rick Beerendonk
 
Stripe con 2021 UI stack
MaximeRainville1
 
Deep dive into Vue.js
선협 이
 
JHipster
Yuen-Kuei Hsueh
 
Web application I have always dreamt of
Victor_Cr
 
React native - React(ive) Way To Build Native Mobile Apps
Jimit Shah
 
[Srijan Wednesday Webinars] Developing Large Scale Applications in AngularJS
Srijan Technologies
 
Building API in the cloud using Azure Functions
Aleksandar Bozinovski
 
React Fundamentals - Jakarta JS, Apr 2016
Simon Sturmer
 
JavaScript innovaties: ECMAScript 6 & 7
Rick Beerendonk
 
006. React - Redux framework
Binh Quan Duc
 
introduction to Vue.js 3
ArezooKmn
 
005. a React project structure
Binh Quan Duc
 
Web Components Everywhere
Ilia Idakiev
 
Write Once, Run Everywhere - Ember.js Munich
Mike North
 

Viewers also liked (15)

PPTX
An Unexpected Solution to Microservices UI Composition
Dr. Arif Wider
 
PPTX
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
Dr. Arif Wider
 
PPTX
Building Microservices in the cloud at AutoScout24
Christian Deger
 
PDF
Developing Apps With React Native
Alvaro Viebrantz
 
PPTX
Building a Web Frontend with Microservices and NGINX Plus
NGINX, Inc.
 
PDF
Adoption of Software By A User Community: The Montage Image Mosaic Engine Exa...
SoftwarePractice
 
PDF
Frontend as a first class citizen
Marcin Grzywaczewski
 
PPTX
Showroom4
Sriparna Biswas
 
PPTX
Dwarka expressway project
Suraj Realtors
 
PPTX
Create your showroom
Sriparna Biswas
 
PPTX
Work for english
Cristopher Pico
 
PPTX
Showroom creation
Sriparna Biswas
 
PPTX
Ltvc book presentation
Mari Vainomäe
 
PPTX
Demo1
Sriparna Biswas
 
PDF
Catalogo LED 2012
Fabio Magli
 
An Unexpected Solution to Microservices UI Composition
Dr. Arif Wider
 
A High-Performance Solution to Microservice UI Composition @ XConf Hamburg
Dr. Arif Wider
 
Building Microservices in the cloud at AutoScout24
Christian Deger
 
Developing Apps With React Native
Alvaro Viebrantz
 
Building a Web Frontend with Microservices and NGINX Plus
NGINX, Inc.
 
Adoption of Software By A User Community: The Montage Image Mosaic Engine Exa...
SoftwarePractice
 
Frontend as a first class citizen
Marcin Grzywaczewski
 
Showroom4
Sriparna Biswas
 
Dwarka expressway project
Suraj Realtors
 
Create your showroom
Sriparna Biswas
 
Work for english
Cristopher Pico
 
Showroom creation
Sriparna Biswas
 
Ltvc book presentation
Mari Vainomäe
 
Catalogo LED 2012
Fabio Magli
 
Ad

Similar to React.js - and how it changed our thinking about UI (20)

PPTX
React.js at Cortex
Geoff Harcourt
 
PPT
Building Rich User Experiences Without JavaScript Spaghetti
Jared Faris
 
PPTX
Introduction to react native with redux
Mike Melusky
 
PDF
Javascript spaghetti stirtrek_5_17
Jared Faris
 
PDF
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
PDF
JOSA TechTalks - Better Web Apps with React and Redux
Jordan Open Source Association
 
PPTX
Better web apps with React and Redux
Ali Sa'o
 
PPTX
An evening with React Native
Mike Melusky
 
PDF
l1-reactnativeintroduction-160816150540.pdf
Hương Trà Pé Xjnk
 
PDF
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
PDF
React && React Native workshop
Stacy Goh
 
PDF
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
GreeceJS
 
PDF
Full Stack React Workshop [CSSC x GDSC]
GDSC UofT Mississauga
 
PDF
Building Top-Notch Androids SDKs
relayr
 
PPTX
Introduction to ReactJS UI Web Dev .pptx
SHAIKIRFAN715544
 
PPTX
Introduction to React JS.pptx
SHAIKIRFAN715544
 
PDF
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth
 
PDF
Welcome to React & Flux !
Ritesh Kumar
 
PPTX
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
PPTX
Meteor meetup
David Brear
 
React.js at Cortex
Geoff Harcourt
 
Building Rich User Experiences Without JavaScript Spaghetti
Jared Faris
 
Introduction to react native with redux
Mike Melusky
 
Javascript spaghetti stirtrek_5_17
Jared Faris
 
Web Development with Delphi and React - ITDevCon 2016
Marco Breveglieri
 
JOSA TechTalks - Better Web Apps with React and Redux
Jordan Open Source Association
 
Better web apps with React and Redux
Ali Sa'o
 
An evening with React Native
Mike Melusky
 
l1-reactnativeintroduction-160816150540.pdf
Hương Trà Pé Xjnk
 
React Native Introduction: Making Real iOS and Android Mobile App By JavaScript
Kobkrit Viriyayudhakorn
 
React && React Native workshop
Stacy Goh
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
GreeceJS
 
Full Stack React Workshop [CSSC x GDSC]
GDSC UofT Mississauga
 
Building Top-Notch Androids SDKs
relayr
 
Introduction to ReactJS UI Web Dev .pptx
SHAIKIRFAN715544
 
Introduction to React JS.pptx
SHAIKIRFAN715544
 
Wessel Loth - Fire your Frontend Framework with Lit - TEQnation 2022.pdf
Wessel Loth
 
Welcome to React & Flux !
Ritesh Kumar
 
Reactjs notes.pptx for web development- tutorial and theory
jobinThomas54
 
Meteor meetup
David Brear
 
Ad

Recently uploaded (20)

PDF
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
PDF
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
PDF
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
PDF
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
PPTX
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PDF
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
PPTX
Networking_Essentials_version_3.0_-_Module_5.pptx
ryan622010
 
PDF
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
PDF
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PPTX
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
PPTX
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PPTX
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PPTX
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
PDF
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PPTX
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
BRKACI-1003 ACI Brownfield Migration - Real World Experiences and Best Practi...
fcesargonca
 
Networking_Essentials_version_3.0_-_Module_5.pptx
ryan622010
 
BRKSP-2551 - Introduction to Segment Routing.pdf
fcesargonca
 
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
Orchestrating things in Angular application
Peter Abraham
 
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 

React.js - and how it changed our thinking about UI