mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
520 lines
21 KiB
HTML
520 lines
21 KiB
HTML
<!DOCTYPE html>
|
||
<!--[if IE]><![endif]-->
|
||
<html>
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||
<title>Videos | React</title>
|
||
<meta name="viewport" content="width=device-width">
|
||
<meta property="og:title" content="Videos | React">
|
||
<meta property="og:type" content="website">
|
||
<meta property="og:url" content="http://facebook.github.io/react/docs/videos.html">
|
||
<meta property="og:image" content="http://facebook.github.io/react/img/logo_og.png">
|
||
<meta property="og:description" content="A JavaScript library for building user interfaces">
|
||
<meta property="fb:app_id" content="623268441017527">
|
||
|
||
<link rel="shortcut icon" href="/react/favicon.ico">
|
||
<link rel="alternate" type="application/rss+xml" title="React" href="http://facebook.github.io/react/feed.xml">
|
||
|
||
<link rel="stylesheet" href="/react/css/syntax.css">
|
||
<link rel="stylesheet" href="/react/css/codemirror.css">
|
||
<link rel="stylesheet" href="/react/css/react.css">
|
||
|
||
<script type="text/javascript" src="//use.typekit.net/vqa1hcx.js"></script>
|
||
<script type="text/javascript">try{Typekit.load();}catch(e){}</script>
|
||
|
||
<!--[if lte IE 8]>
|
||
<script type="text/javascript" src="/react/js/html5shiv.min.js"></script>
|
||
<script type="text/javascript" src="/react/js/es5-shim.min.js"></script>
|
||
<script type="text/javascript" src="/react/js/es5-sham.min.js"></script>
|
||
<![endif]-->
|
||
<script type="text/javascript" src="/react/js/codemirror.js"></script>
|
||
<script type="text/javascript" src="/react/js/javascript.js"></script>
|
||
<script type="text/javascript" src="/react/js/react.js"></script>
|
||
<script type="text/javascript" src="/react/js/JSXTransformer.js"></script>
|
||
<script type="text/javascript" src="/react/js/live_editor.js"></script>
|
||
<script type="text/javascript" src="/react/js/showdown.js"></script>
|
||
</head>
|
||
<body>
|
||
|
||
<div class="container">
|
||
|
||
<div class="nav-main">
|
||
<div class="wrap">
|
||
<a class="nav-home" href="/react/index.html">
|
||
<img class="nav-logo" src="/react/img/logo.svg" width="36" height="36">
|
||
React
|
||
</a>
|
||
<ul class="nav-site">
|
||
<li><a href="/react/docs/getting-started.html" class="active">docs</a></li>
|
||
<li><a href="/react/support.html">support</a></li>
|
||
<li><a href="/react/downloads.html">download</a></li>
|
||
<li><a href="/react/blog/">blog</a></li>
|
||
<li><a href="http://github.com/facebook/react">github</a>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<section class="content wrap documentationContent">
|
||
<div class="nav-docs">
|
||
<!-- Docs Nav -->
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Quick Start</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/getting-started.html">Getting Started</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/tutorial.html">Tutorial</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/thinking-in-react.html">Thinking in React</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Community Resources</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/videos.html" class="active">Videos</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/complementary-tools.html">Complementary Tools</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/examples.html">Examples</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Guides</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/why-react.html">Why React?</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/displaying-data.html">Displaying Data</a>
|
||
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/jsx-in-depth.html">JSX in Depth</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/jsx-spread.html">JSX Spread Attributes</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/jsx-gotchas.html">JSX Gotchas</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/interactivity-and-dynamic-uis.html">Interactivity and Dynamic UIs</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/multiple-components.html">Multiple Components</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/reusable-components.html">Reusable Components</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/transferring-props.html">Transferring Props</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/forms.html">Forms</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/working-with-the-browser.html">Working With the Browser</a>
|
||
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/more-about-refs.html">More About Refs</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/tooling-integration.html">Tooling Integration</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/addons.html">Add-Ons</a>
|
||
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/animation.html">Animation</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/two-way-binding-helpers.html">Two-Way Binding Helpers</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/class-name-manipulation.html">Class Name Manipulation</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/test-utils.html">Test Utilities</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/clone-with-props.html">Cloning Components</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/update.html">Immutability Helpers</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/pure-render-mixin.html">PureRenderMixin</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/perf.html">Performance Tools</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Reference</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/docs/top-level-api.html">Top-Level API</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/component-api.html">Component API</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/component-specs.html">Component Specs and Lifecycle</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/tags-and-attributes.html">Supported Tags and Attributes</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/events.html">Event System</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/dom-differences.html">DOM Differences</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/special-non-dom-attributes.html">Special Non-DOM Attributes</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/reconciliation.html">Reconciliation</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/docs/glossary.html">React (Virtual) DOM Terminology</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Flux</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="http://facebook.github.io/flux/docs/overview.html">Flux Overview</a>
|
||
|
||
</li>
|
||
|
||
<li>
|
||
<a href="http://facebook.github.io/flux/docs/todo-list.html">Flux TodoMVC Tutorial</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
|
||
<!-- Tips Nav -->
|
||
|
||
<div class="nav-docs-section">
|
||
<h3>Tips</h3>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="/react/tips/introduction.html">Introduction</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/inline-styles.html">Inline Styles</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/if-else-in-JSX.html">If-Else in JSX</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/self-closing-tag.html">Self-Closing Tag</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/maximum-number-of-jsx-root-nodes.html">Maximum Number of JSX Root Nodes</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/style-props-value-px.html">Shorthand for Specifying Pixel Values in style props</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/children-props-type.html">Type of the Children props</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/controlled-input-null-value.html">Value of null for Controlled Input</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/componentWillReceiveProps-not-triggered-after-mounting.html">componentWillReceiveProps Not Triggered After Mounting</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/props-in-getInitialState-as-anti-pattern.html">Props in getInitialState Is an Anti-Pattern</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/dom-event-listeners.html">DOM Event Listeners in a Component</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/initial-ajax.html">Load Initial Data via AJAX</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/false-in-jsx.html">False in JSX</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/communicate-between-components.html">Communicate Between Components</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/expose-component-functions.html">Expose Component Functions</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/references-to-components.html">References to Components</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/react/tips/children-undefined.html">this.props.children undefined</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
<div class="inner-content">
|
||
<h1>
|
||
Videos
|
||
<a class="edit-page-link" href="https://github.com/facebook/react/tree/master/docs/docs/videos.md" target="_blank">Edit on GitHub</a>
|
||
</h1>
|
||
<div class="subHeader"></div>
|
||
|
||
<h3><a class="anchor" name="rethinking-best-practices---jsconf.eu"></a>Rethinking best practices - JSConf.eu <a class="hash-link" href="#rethinking-best-practices---jsconf.eu">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/x7cQ3mrcKaY" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>"At Facebook and Instagram, we’re trying to push the limits of what’s possible on the web with React. My talk will start with a brief introduction to the framework, and then dive into three controversial topics: Throwing out the notion of templates and building views with JavaScript, “re-rendering” your entire application when your data changes, and a lightweight implementation of the DOM and events." -- <a href="http://www.petehunt.net/">Pete Hunt</a></p>
|
||
<h3><a class="anchor" name="thinking-in-react---tagtree.tv"></a>Thinking in react - tagtree.tv <a class="hash-link" href="#thinking-in-react---tagtree.tv">#</a></h3>
|
||
<p>A <a href="http://tagtree.tv/">tagtree.tv</a> video conveying the principles of <a href="/react/docs/thinking-in-react.html">Thinking in React</a> while building a simple app
|
||
<figure><a href="http://tagtree.tv/thinking-in-react"><img src="/react/img/docs/thinking-in-react-tagtree.png" alt=""></a></figure></p>
|
||
<h3><a class="anchor" name="secrets-of-the-virtual-dom---mtnwest-js"></a>Secrets of the Virtual DOM - MtnWest JS <a class="hash-link" href="#secrets-of-the-virtual-dom---mtnwest-js">#</a></h3>
|
||
<iframe width="560" height="315" src="//www.youtube.com/embed/h3KksH8gfcQ" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>"In this talk I’ll be discussing why we built a virtual DOM, how it compares to other systems, and its relevance to the future of browser technologies." -- <a href="http://www.petehunt.net/">Pete Hunt</a></p>
|
||
<h3><a class="anchor" name="going-big-with-react"></a>Going big with React <a class="hash-link" href="#going-big-with-react">#</a></h3>
|
||
<p>"On paper, all those JS frameworks look promising: clean implementations, quick code design, flawless execution. But what happens when you stress test Javascript? What happens when you throw 6 megabytes of code at it? In this talk, we'll investigate how React performs in a high stress situation, and how it has helped our team build safe code on a massive scale."
|
||
<figure><a href="https://skillsmatter.com/skillscasts/5429-going-big-with-react#video"><img src="https://i.vimeocdn.com/video/481670116_650.jpg" alt=""></a></figure></p>
|
||
<h3><a class="anchor" name="codewinds"></a>CodeWinds <a class="hash-link" href="#codewinds">#</a></h3>
|
||
<p><a href="http://www.petehunt.net/">Pete Hunt</a> talked with <a href="http://jeff.barczewski.com/">Jeff Barczewski</a> about React in CodeWinds Episode 4.
|
||
<figure><a href="http://codewinds.com/4"><img src="/react/img/docs/codewinds-004.png" alt=""></a></figure></p>
|
||
|
||
<table width="100%"><tr><td>
|
||
02:08 - What is React and why use it?<br />
|
||
03:08 - The symbiotic relationship of ClojureScript and React<br />
|
||
04:54 - The history of React and why it was created<br />
|
||
09:43 - Updating web page with React without using data binding<br />
|
||
13:11 - Using the virtual DOM to change the browser DOM<br />
|
||
13:57 - Programming with React, render targets HTML, canvas, other<br />
|
||
16:45 - Working with designers. Contrasted with Ember and AngularJS<br />
|
||
21:45 - JSX Compiler bridging HTML and React javascript<br />
|
||
23:50 - Autobuilding JSX and in browser tools for React<br />
|
||
24:50 - Tips and tricks to working with React, getting started<br />
|
||
</td><td>
|
||
27:17 - Rendering HTML on the server with Node.js. Rendering backends<br />
|
||
29:20 - React evolved through survival of the fittest at Facebook<br />
|
||
30:15 - Ideas for having state on server and client, using web sockets.<br />
|
||
32:05 - React-multiuser - distributed shared mutable state using Firebase<br />
|
||
33:03 - Better debugging with React using the state transitions, replaying events<br />
|
||
34:08 - Differences from Web Components<br />
|
||
34:25 - Notable companies using React<br />
|
||
35:16 - Could a React backend plugin be created to target PDF?<br />
|
||
36:30 - Future of React, what's next?<br />
|
||
39:38 - Contributing and getting help<br />
|
||
</td></tr></table>
|
||
|
||
<p><a href="http://codewinds.com/4">Read the episode notes</a></p>
|
||
<h3><a class="anchor" name="javascript-jabber"></a>JavaScript Jabber <a class="hash-link" href="#javascript-jabber">#</a></h3>
|
||
<p><a href="http://www.petehunt.net/">Pete Hunt</a> and <a href="https://github.com/jordwalke">Jordan Walke</a> talked about React in JavaScript Jabber 73.
|
||
<figure><a href="http://javascriptjabber.com/073-jsj-react-with-pete-hunt-and-jordan-walke/#content"><img src="/react/img/docs/javascript-jabber.png" alt=""></a></figure></p>
|
||
|
||
<table width="100%"><tr><td>
|
||
01:34 – Pete Hunt Introduction<br />
|
||
02:45 – Jordan Walke Introduction<br />
|
||
04:15 – React<br />
|
||
06:38 – 60 Frames Per Second<br />
|
||
09:34 – Data Binding<br />
|
||
12:31 – Performance<br />
|
||
17:39 – Diffing Algorithm<br />
|
||
19:36 – DOM Manipulation
|
||
</td><td>
|
||
23:06 – Supporting node.js<br />
|
||
24:03 – rendr<br />
|
||
26:02 – JSX<br />
|
||
30:31 – requestAnimationFrame<br />
|
||
34:15 – React and Applications<br />
|
||
38:12 – React Users Khan Academy<br />
|
||
39:53 – Making it work
|
||
</td></tr></table>
|
||
|
||
<p><a href="http://javascriptjabber.com/073-jsj-react-with-pete-hunt-and-jordan-walke/">Read the full transcript</a></p>
|
||
<h3><a class="anchor" name="introduction-to-react.js---facebook-seattle"></a>Introduction to React.js - Facebook Seattle <a class="hash-link" href="#introduction-to-react.js---facebook-seattle">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/XxVg_s8xAms" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>By <a href="http://tomocchino.com/">Tom Occhino</a> and <a href="https://github.com/jordwalke">Jordan Walke</a></p>
|
||
<h3><a class="anchor" name="developing-user-interfaces-with-react---super-vanjs"></a>Developing User Interfaces With React - Super VanJS <a class="hash-link" href="#developing-user-interfaces-with-react---super-vanjs">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/1OeXsL5mr4g" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>By <a href="https://github.com/steveluscher">Steven Luscher</a></p>
|
||
<h3><a class="anchor" name="introduction-to-react---lawebspeed-meetup"></a>Introduction to React - LAWebSpeed meetup <a class="hash-link" href="#introduction-to-react---lawebspeed-meetup">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/SMMRJif5QW0" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>by <a href="http://www.phpied.com/">Stoyan Stefanov</a></p>
|
||
<h3><a class="anchor" name="react-or-how-to-make-life-simpler---frontend-dev-conf-14"></a>React, or how to make life simpler - FrontEnd Dev Conf '14 <a class="hash-link" href="#react-or-how-to-make-life-simpler---frontend-dev-conf-14">#</a></h3>
|
||
<iframe width="560" height="315" src="//www.youtube.com/embed/YJNUK0EA_Jo" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p><strong>In Russian</strong> by <a href="http://solovyov.net/">Alexander Solovyov</a></p>
|
||
<h3><a class="anchor" name="functional-dom-programming---meteor-devshop-11"></a>"Functional DOM programming" - Meteor DevShop 11 <a class="hash-link" href="#functional-dom-programming---meteor-devshop-11">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/qqVbr_LaCIo" frameborder="0" allowfullscreen></iframe>
|
||
<h3><a class="anchor" name="rethinking-web-app-development-at-facebook---facebook-f8-conference-2014"></a>"Rethinking Web App Development at Facebook" - Facebook F8 Conference 2014 <a class="hash-link" href="#rethinking-web-app-development-at-facebook---facebook-f8-conference-2014">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/nYkdrAPrdcw" frameborder="0" allowfullscreen></iframe>
|
||
<h3><a class="anchor" name="react-and-flux-building-applications-with-a-unidirectional-data-flow---forward-js-2014"></a>React and Flux: Building Applications with a Unidirectional Data Flow - Forward JS 2014 <a class="hash-link" href="#react-and-flux-building-applications-with-a-unidirectional-data-flow---forward-js-2014">#</a></h3>
|
||
<iframe width="650" height="315" src="//www.youtube.com/embed/i__969noyAM" frameborder="0" allowfullscreen></iframe>
|
||
|
||
<p>Facebook engineers <a href="http://twitter.com/fisherwebdev">Bill Fisher</a> and <a href="http://twitter.com/jingc">Jing Chen</a> talk about Flux and React, and how using an application architecture with a unidirectional data flow cleans up a lot of their code.</p>
|
||
|
||
|
||
<div class="docs-prevnext">
|
||
|
||
<a class="docs-prev" href="/react/docs/thinking-in-react.html">← Prev</a>
|
||
|
||
|
||
<a class="docs-next" href="/react/docs/complementary-tools.html">Next →</a>
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
|
||
<footer class="wrap">
|
||
<div class="left">
|
||
A Facebook & Instagram collaboration.<br>
|
||
<a href="/react/acknowledgements.html">Acknowledgements</a>
|
||
</div>
|
||
<div class="right">
|
||
© 2013–2014 Facebook Inc.<br>
|
||
Documentation licensed under <a href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
|
||
</div>
|
||
</footer>
|
||
</div>
|
||
<div id="fb-root"></div>
|
||
|
||
<script>
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||
ga('create', 'UA-41298772-1', 'facebook.github.io');
|
||
ga('send', 'pageview');
|
||
|
||
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
|
||
|
||
(function(d, s, id) {
|
||
var js, fjs = d.getElementsByTagName(s)[0];
|
||
if (d.getElementById(id)) return;
|
||
js = d.createElement(s); js.id = id;
|
||
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=623268441017527";
|
||
fjs.parentNode.insertBefore(js, fjs);
|
||
}(document, 'script', 'facebook-jssdk'));
|
||
</script>
|
||
</body>
|
||
</html>
|