SlideShare a Scribd company logo
1 of 22
London Facebook React User
Group Meetup
#LondonReact
19:00: Welcome and Intro to Facebook React: Stuart Harris
19:10: What’s new in React 0.11 and how to improve performance by
guaranteeing immutability: Stuart Harris
19:30: State handing in React with Morearty.Js: Alex Savin
19:50: Building an isomorphic,real time to do list with moped and node.Js:
Forbes Lindesay
20:10: React on Rails:How to use React with Ruby on Rails, to build
isomorphic apps: Viktor Charypar
Agenda #LondonReact
Introduction to React Stuart Harris
Introduction to React
The ‘V’ in MVC? Not really.
Components are key to modern web dev
Non-intrusive
Uniform (HTML5) across all browsers (including events)
Fast
Introduction to React
Like games programming
A cross between immediate-mode and retained-mode
Much easier to reason about your application’s state
http://calendar.perfplanet.com/2013/diff/
How does it work?
Reconciliation
http://calendar.perfplanet.com/2013/diff/
How does it work?
http://calendar.perfplanet.com/2013/diff/
How does it work?
http://calendar.perfplanet.com/2013/diff/
How does it work?
http://calendar.perfplanet.com/2013/diff/
How does it work?
boolean shouldComponentUpdate(object nextProps, object nextState)
http://calendar.perfplanet.com/2013/diff/
How does it work?
O(n3)
O(n)
1000 nodes = 1,000,000,000 comparisons
1000 nodes = 1000 comparisons
(can even be significantly cheaper than this)
What’s new in React 0.11
getDefaultProps()
now called once per component type rather than before each render()
render()
can now render “nothing” by returning null (implemented using <noscript> which could be a
problem with XHTML pages, but this may change).
JSX namespaces:
render: function() {
return <UI.Layout><UI.Button /><UI.Label>text</UI.Label></UI.Layout>;
}
e.key and e.getModifierState()
as per http://www.w3.org/TR/DOM-Level-3-Events/#keys-special
new onBeforeInput event
What’s broken in React 0.11
Can’t call setState() in componentWillMount() for server-side
rendering. Possibly can’t call it at all server-side. The docs say this is allowed
and they will release 0.11.1 with a fix soon. It’s probably better just to return
initial state from getInitialState()
Server-side rendering of selected option elements is difficult because of the
way select elements use value instead of selected options. Can be done
but get loads of warnings.
What’s new in React 0.11 Addons
PureRenderMixin
a mixin which helps optimize "pure" components
Perf
a new set of tools to help with performance analysis
Update
New $apply command to transform values
TransitionGroup
bug fixes with null elements, Android
What’s new in React 0.11 Addons
"We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil" - Donald Knuth
Demo
Perf.printWasted()
PureRenderMixin
How to improve performance by
guaranteeing immutability
var new-data = require('react/addons').addons.update(old-data, updates);
where updates is a sparse object defining location and nature of each update
DEMO
http://facebook.github.io/react/docs/update.html
How to improve performance by
guaranteeing immutability
{$push: array} push() all the items in array on the target.
{$unshift: array} unshift() all the items in array on the target.
{$splice: array of arrays} for each item in array() call splice() on the
target with the parameters provided by the item.
{$set: any} replace the target entirely.
{$merge: object} merge the keys of object with the target.
{$apply: function} passes in the current value to the function and updates
it with the new returned value.
How to improve performance by
guaranteeing immutability
PureRenderMixin will now work with deep hierarchies
Alternatives:
● LiveScript with prelude-ls
○ http://livescript.net/
○ http://www.preludels.com/
● Mori
○ https://github.com/swannodette/mori
○ http://swannodette.github.io/mori/
● ClojureScript (esp with Om)
○ https://github.com/swannodette/om
State handing in React with Morearty.JS
Alex Savin
Building an isomorphic Forbes Lindesay
React on Rails Viktor Charypar
We’d love to hear from you
Please fill in the feedback survey on the Meetup page
Red Badger
@redbadgerteam
red-badger.com
hello@red-badger.com
Feedback
#LondonReact

More Related Content

What's hot

Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Katy Slemon
 
20191112 HAProxy conf 2019 - RTL journey to kubernetes with haproxy
20191112   HAProxy conf 2019 - RTL journey to kubernetes with haproxy20191112   HAProxy conf 2019 - RTL journey to kubernetes with haproxy
20191112 HAProxy conf 2019 - RTL journey to kubernetes with haproxyVincent Gallissot
 
Steps to deploy mule application with munit on cloudhub using jenkins pipeline
Steps to deploy mule application with munit on cloudhub using jenkins pipelineSteps to deploy mule application with munit on cloudhub using jenkins pipeline
Steps to deploy mule application with munit on cloudhub using jenkins pipelineAmitSrivastava414
 
SignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatSignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatDavid Pine
 
Heptio Contour - talk CNCF Nantes
Heptio Contour - talk CNCF NantesHeptio Contour - talk CNCF Nantes
Heptio Contour - talk CNCF NantesGaëlle Acas
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?Jonathan Jalouzot
 
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and DockerOSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and DockerGaurav Gahlot
 
Whisk Deploy - Syncing OpenWhisk Projects
Whisk Deploy - Syncing OpenWhisk ProjectsWhisk Deploy - Syncing OpenWhisk Projects
Whisk Deploy - Syncing OpenWhisk ProjectsPriti Desai
 
ServiceWorkerとES6 Modules時代のTypescript開発考察
ServiceWorkerとES6 Modules時代のTypescript開発考察ServiceWorkerとES6 Modules時代のTypescript開発考察
ServiceWorkerとES6 Modules時代のTypescript開発考察Taketoshi 青野健利
 
20150511 Meteor Angular
20150511 Meteor Angular20150511 Meteor Angular
20150511 Meteor AngularRick Wehrle
 
TuleapCon2017 -Automating Jenkins build with Tuleap trackers
TuleapCon2017 -Automating Jenkins build with Tuleap trackersTuleapCon2017 -Automating Jenkins build with Tuleap trackers
TuleapCon2017 -Automating Jenkins build with Tuleap trackersTuleap
 
TuleapCon2017-Bugzilla-integration
TuleapCon2017-Bugzilla-integrationTuleapCon2017-Bugzilla-integration
TuleapCon2017-Bugzilla-integrationTuleap
 
Automate Everyday Tasks with Functions
Automate Everyday Tasks with FunctionsAutomate Everyday Tasks with Functions
Automate Everyday Tasks with FunctionsSean ODell
 
Kubernetes Service Catalog & Open Service Broker for Azure
Kubernetes Service Catalog & Open Service Broker for AzureKubernetes Service Catalog & Open Service Broker for Azure
Kubernetes Service Catalog & Open Service Broker for AzureJulien Corioland
 
Getting to Know Airflow
Getting to Know AirflowGetting to Know Airflow
Getting to Know AirflowRosanne Hoyem
 
Gophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangGophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangVishal Biyani
 

What's hot (20)

Зоопарк React-у
Зоопарк React-уЗоопарк React-у
Зоопарк React-у
 
Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...Redux and context api with react native app introduction, use cases, implemen...
Redux and context api with react native app introduction, use cases, implemen...
 
20191112 HAProxy conf 2019 - RTL journey to kubernetes with haproxy
20191112   HAProxy conf 2019 - RTL journey to kubernetes with haproxy20191112   HAProxy conf 2019 - RTL journey to kubernetes with haproxy
20191112 HAProxy conf 2019 - RTL journey to kubernetes with haproxy
 
Ite express labs
Ite express labsIte express labs
Ite express labs
 
Steps to deploy mule application with munit on cloudhub using jenkins pipeline
Steps to deploy mule application with munit on cloudhub using jenkins pipelineSteps to deploy mule application with munit on cloudhub using jenkins pipeline
Steps to deploy mule application with munit on cloudhub using jenkins pipeline
 
SignalR: Above & Beyond Chat
SignalR: Above & Beyond ChatSignalR: Above & Beyond Chat
SignalR: Above & Beyond Chat
 
Heptio Contour - talk CNCF Nantes
Heptio Contour - talk CNCF NantesHeptio Contour - talk CNCF Nantes
Heptio Contour - talk CNCF Nantes
 
Interactive watch faces
Interactive watch facesInteractive watch faces
Interactive watch faces
 
coursecompletion
coursecompletioncoursecompletion
coursecompletion
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?
 
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and DockerOSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
OSCONF - April 2021 - Run GitHub Actions Locally with nektos/act and Docker
 
Whisk Deploy - Syncing OpenWhisk Projects
Whisk Deploy - Syncing OpenWhisk ProjectsWhisk Deploy - Syncing OpenWhisk Projects
Whisk Deploy - Syncing OpenWhisk Projects
 
ServiceWorkerとES6 Modules時代のTypescript開発考察
ServiceWorkerとES6 Modules時代のTypescript開発考察ServiceWorkerとES6 Modules時代のTypescript開発考察
ServiceWorkerとES6 Modules時代のTypescript開発考察
 
20150511 Meteor Angular
20150511 Meteor Angular20150511 Meteor Angular
20150511 Meteor Angular
 
TuleapCon2017 -Automating Jenkins build with Tuleap trackers
TuleapCon2017 -Automating Jenkins build with Tuleap trackersTuleapCon2017 -Automating Jenkins build with Tuleap trackers
TuleapCon2017 -Automating Jenkins build with Tuleap trackers
 
TuleapCon2017-Bugzilla-integration
TuleapCon2017-Bugzilla-integrationTuleapCon2017-Bugzilla-integration
TuleapCon2017-Bugzilla-integration
 
Automate Everyday Tasks with Functions
Automate Everyday Tasks with FunctionsAutomate Everyday Tasks with Functions
Automate Everyday Tasks with Functions
 
Kubernetes Service Catalog & Open Service Broker for Azure
Kubernetes Service Catalog & Open Service Broker for AzureKubernetes Service Catalog & Open Service Broker for Azure
Kubernetes Service Catalog & Open Service Broker for Azure
 
Getting to Know Airflow
Getting to Know AirflowGetting to Know Airflow
Getting to Know Airflow
 
Gophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golangGophercon 2018: Kubernetes api golang
Gophercon 2018: Kubernetes api golang
 

Similar to React Meetup 2

React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)Chiew Carol
 
React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥Remo Jansen
 
React gsg presentation with ryan jung &amp; elias malik
React   gsg presentation with ryan jung &amp; elias malikReact   gsg presentation with ryan jung &amp; elias malik
React gsg presentation with ryan jung &amp; elias malikLama K Banna
 
React js programming concept
React js programming conceptReact js programming concept
React js programming conceptTariqul islam
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with ReactNetcetera
 
The ultimate guide to optimize your react native app performance in 2022
The ultimate guide to optimize your react native app performance in 2022The ultimate guide to optimize your react native app performance in 2022
The ultimate guide to optimize your react native app performance in 2022Katy Slemon
 
A React Journey
A React JourneyA React Journey
A React JourneyLinkMe Srl
 
React 18: New Features & Innovations
React 18: New Features & InnovationsReact 18: New Features & Innovations
React 18: New Features & InnovationsBOSC Tech Labs
 
How To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptxHow To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptxBOSC Tech Labs
 
class based component.pptx
class based component.pptxclass based component.pptx
class based component.pptxsaikatsamanta49
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing ComplexityRyan Anklam
 
Build web apps with react js
Build web apps with react jsBuild web apps with react js
Build web apps with react jsdhanushkacnd
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJSDaine Mawer
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework ReactionJonas Bandi
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15GreeceJS
 
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptx
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptxGet Started with ReactJS 18 Development Services_ New Features and Updates.pptx
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptxConcetto Labs
 
Introduction to React for Frontend Developers
Introduction to React for Frontend DevelopersIntroduction to React for Frontend Developers
Introduction to React for Frontend DevelopersSergio Nakamura
 
Better web apps with React and Redux
Better web apps with React and ReduxBetter web apps with React and Redux
Better web apps with React and ReduxAli Sa'o
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework Reactionjbandi
 

Similar to React Meetup 2 (20)

React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)React Native +Redux + ES6 (Updated)
React Native +Redux + ES6 (Updated)
 
React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥React + Redux + TypeScript === ♥
React + Redux + TypeScript === ♥
 
React gsg presentation with ryan jung &amp; elias malik
React   gsg presentation with ryan jung &amp; elias malikReact   gsg presentation with ryan jung &amp; elias malik
React gsg presentation with ryan jung &amp; elias malik
 
React js programming concept
React js programming conceptReact js programming concept
React js programming concept
 
Content-Driven Apps with React
Content-Driven Apps with ReactContent-Driven Apps with React
Content-Driven Apps with React
 
The ultimate guide to optimize your react native app performance in 2022
The ultimate guide to optimize your react native app performance in 2022The ultimate guide to optimize your react native app performance in 2022
The ultimate guide to optimize your react native app performance in 2022
 
A React Journey
A React JourneyA React Journey
A React Journey
 
React 18: New Features & Innovations
React 18: New Features & InnovationsReact 18: New Features & Innovations
React 18: New Features & Innovations
 
How To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptxHow To Upgrade The React 18 Release Candidate.pptx
How To Upgrade The React 18 Release Candidate.pptx
 
class based component.pptx
class based component.pptxclass based component.pptx
class based component.pptx
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing Complexity
 
Build web apps with react js
Build web apps with react jsBuild web apps with react js
Build web apps with react js
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework Reaction
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
Tech Talk on ReactJS
Tech Talk on ReactJSTech Talk on ReactJS
Tech Talk on ReactJS
 
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptx
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptxGet Started with ReactJS 18 Development Services_ New Features and Updates.pptx
Get Started with ReactJS 18 Development Services_ New Features and Updates.pptx
 
Introduction to React for Frontend Developers
Introduction to React for Frontend DevelopersIntroduction to React for Frontend Developers
Introduction to React for Frontend Developers
 
Better web apps with React and Redux
Better web apps with React and ReduxBetter web apps with React and Redux
Better web apps with React and Redux
 
From User Action to Framework Reaction
From User Action to Framework ReactionFrom User Action to Framework Reaction
From User Action to Framework Reaction
 

Recently uploaded

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

React Meetup 2

  • 1. London Facebook React User Group Meetup #LondonReact
  • 2. 19:00: Welcome and Intro to Facebook React: Stuart Harris 19:10: What’s new in React 0.11 and how to improve performance by guaranteeing immutability: Stuart Harris 19:30: State handing in React with Morearty.Js: Alex Savin 19:50: Building an isomorphic,real time to do list with moped and node.Js: Forbes Lindesay 20:10: React on Rails:How to use React with Ruby on Rails, to build isomorphic apps: Viktor Charypar Agenda #LondonReact
  • 3. Introduction to React Stuart Harris
  • 4. Introduction to React The ‘V’ in MVC? Not really. Components are key to modern web dev Non-intrusive Uniform (HTML5) across all browsers (including events) Fast
  • 5. Introduction to React Like games programming A cross between immediate-mode and retained-mode Much easier to reason about your application’s state
  • 10. http://calendar.perfplanet.com/2013/diff/ How does it work? boolean shouldComponentUpdate(object nextProps, object nextState)
  • 11. http://calendar.perfplanet.com/2013/diff/ How does it work? O(n3) O(n) 1000 nodes = 1,000,000,000 comparisons 1000 nodes = 1000 comparisons (can even be significantly cheaper than this)
  • 12. What’s new in React 0.11 getDefaultProps() now called once per component type rather than before each render() render() can now render “nothing” by returning null (implemented using <noscript> which could be a problem with XHTML pages, but this may change). JSX namespaces: render: function() { return <UI.Layout><UI.Button /><UI.Label>text</UI.Label></UI.Layout>; } e.key and e.getModifierState() as per http://www.w3.org/TR/DOM-Level-3-Events/#keys-special new onBeforeInput event
  • 13. What’s broken in React 0.11 Can’t call setState() in componentWillMount() for server-side rendering. Possibly can’t call it at all server-side. The docs say this is allowed and they will release 0.11.1 with a fix soon. It’s probably better just to return initial state from getInitialState() Server-side rendering of selected option elements is difficult because of the way select elements use value instead of selected options. Can be done but get loads of warnings.
  • 14. What’s new in React 0.11 Addons PureRenderMixin a mixin which helps optimize "pure" components Perf a new set of tools to help with performance analysis Update New $apply command to transform values TransitionGroup bug fixes with null elements, Android
  • 15. What’s new in React 0.11 Addons "We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil" - Donald Knuth Demo Perf.printWasted() PureRenderMixin
  • 16. How to improve performance by guaranteeing immutability var new-data = require('react/addons').addons.update(old-data, updates); where updates is a sparse object defining location and nature of each update DEMO http://facebook.github.io/react/docs/update.html
  • 17. How to improve performance by guaranteeing immutability {$push: array} push() all the items in array on the target. {$unshift: array} unshift() all the items in array on the target. {$splice: array of arrays} for each item in array() call splice() on the target with the parameters provided by the item. {$set: any} replace the target entirely. {$merge: object} merge the keys of object with the target. {$apply: function} passes in the current value to the function and updates it with the new returned value.
  • 18. How to improve performance by guaranteeing immutability PureRenderMixin will now work with deep hierarchies Alternatives: ● LiveScript with prelude-ls ○ http://livescript.net/ ○ http://www.preludels.com/ ● Mori ○ https://github.com/swannodette/mori ○ http://swannodette.github.io/mori/ ● ClojureScript (esp with Om) ○ https://github.com/swannodette/om
  • 19. State handing in React with Morearty.JS Alex Savin
  • 20. Building an isomorphic Forbes Lindesay
  • 21. React on Rails Viktor Charypar
  • 22. We’d love to hear from you Please fill in the feedback survey on the Meetup page Red Badger @redbadgerteam red-badger.com hello@red-badger.com Feedback #LondonReact

Editor's Notes

  1. Next: Alex, Forbes and Viktor on their Laptops.