{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2014/09/12/community-round-up-22.html","result":{"data":{"markdownRemark":{"html":"<p>This has been an exciting summer as four big companies: Yahoo, Mozilla, Airbnb and Reddit announced that they were using React!</p>\n<table><tr><td>\n<blockquote width=\"300\" class=\"twitter-tweet\" data-cards=\"hidden\" lang=\"en\"><p>Our friends at <a href=\"https://twitter.com/Yahoo\">@yahoo</a> talk about migrating Yahoo! Mail from YUI to ReactJS at the next <a href=\"https://twitter.com/hashtag/ReactJS?src=hash\">#ReactJS</a> meetup! <a href=\"http://t.co/Cu2AaE0sVE\">http://t.co/Cu2AaE0sVE</a></p>&mdash; Facebook Open Source (@fbOpenSource) <a href=\"https://twitter.com/fbOpenSource/status/510258065900572672\">September 12, 2014</a></blockquote>\n</td><td valign=\"top\">\n<blockquote width=\"300\" class=\"twitter-tweet\" lang=\"en\"><p>I guess <a href=\"https://twitter.com/reactjs\">@reactjs</a> is getting into Firefox :-) Thanks <a href=\"https://twitter.com/n1k0\">@n1k0</a> ! <a href=\"https://t.co/kipfUS0hu4\">https://t.co/kipfUS0hu4</a></p>&mdash; David Bruant (@DavidBruant) <a href=\"https://twitter.com/DavidBruant/status/484956929933213696\">July 4, 2014</a></blockquote>\n</td></tr><tr><td>\n<blockquote width=\"300\" class=\"twitter-tweet\" lang=\"en\"><p>.<a href=\"https://twitter.com/AirbnbNerds\">@AirbnbNerds</a> just launched our first user-facing React.js feature to production! We love it so far. <a href=\"https://t.co/KtyudemcIW\">https://t.co/KtyudemcIW</a> /<a href=\"https://twitter.com/floydophone\">@floydophone</a></p>&mdash; spikebrehm (@spikebrehm) <a href=\"https://twitter.com/spikebrehm/statuses/491645223643013121\">July 22, 2014</a></blockquote>\n</td><td>\n<blockquote width=\"300\" class=\"twitter-tweet\" lang=\"en\"><p>We shipped reddit&#39;s first production <a href=\"https://twitter.com/reactjs\">@reactjs</a> code last week, our checkout process.&#10;&#10;<a href=\"https://t.co/KUInwsCmAF\">https://t.co/KUInwsCmAF</a></p>&mdash; Brian Holt (@holtbt) <a href=\"https://twitter.com/holtbt/statuses/493852312604254208\">July 28, 2014</a></blockquote>\n</td></tr></table>\n<h2 id=\"reacts-architecture\"><a href=\"#reacts-architecture\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>React’s Architecture </h2>\n<p><a href=\"http://blog.vjeux.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Vjeux</a>, from the React team, gave a talk at OSCON on the history of React and the various optimizations strategies that are implemented. You can also check out the <a href=\"https://speakerdeck.com/vjeux/oscon-react-architecture\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">annotated slides</a> or <a href=\"http://thenewstack.io/author/chrisdawson/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Chris Dawson</a>’s notes titled <a href=\"http://thenewstack.io/javascripts-history-and-how-it-led-to-reactjs/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">JavaScript’s History and How it Led To React</a>.</p>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 48.46153846153846%; position: relative; height: 0; overflow: hidden; \" > <iframe src=\"//www.youtube-nocookie.com/embed/eCf5CquV_Bw\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div>\n<h2 id=\"v8-optimizations\"><a href=\"#v8-optimizations\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>v8 optimizations </h2>\n<p>Jakob Kummerow landed <a href=\"http://www.chromium.org/developers/speed-hall-of-fame#TOC-2014-06-18\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">two optimizations to V8</a> specifically targeted at optimizing React. That’s really exciting to see browser vendors helping out on performance!</p>\n<h2 id=\"reusable-components-by-khan-academy\"><a href=\"#reusable-components-by-khan-academy\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Reusable Components by Khan Academy </h2>\n<p><a href=\"https://www.khanacademy.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Khan Academy</a> released <a href=\"https://khan.github.io/react-components/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">many high quality standalone components</a> they are using. This is a good opportunity to see what React code used in production look like.</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">var</span> TeX <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'react-components/js/tex.jsx'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nReact<span class=\"token punctuation\">.</span><span class=\"token function\">renderComponent</span><span class=\"token punctuation\">(</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">TeX</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\\nabla \\cdot E = 4 \\pi \\rho</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span><span class=\"token class-name\">TeX</span></span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">,</span> domNode<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">var</span> translated <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span>\n  <span class=\"token operator\">&lt;</span>$_ first<span class=\"token operator\">=</span><span class=\"token string\">\"Motoko\"</span> last<span class=\"token operator\">=</span><span class=\"token string\">\"Kusanagi\"</span><span class=\"token operator\">></span>\n    Hello<span class=\"token punctuation\">,</span> <span class=\"token operator\">%</span><span class=\"token punctuation\">(</span>first<span class=\"token punctuation\">)</span>s <span class=\"token operator\">%</span><span class=\"token punctuation\">(</span>last<span class=\"token punctuation\">)</span>s<span class=\"token operator\">!</span>\n  <span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>$_<span class=\"token operator\">></span>\n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"react--browserify--gulp\"><a href=\"#react--browserify--gulp\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>React + Browserify + Gulp </h2>\n<p><a href=\"http://truongtx.me/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Trường</a> wrote a little guide to help your <a href=\"http://truongtx.me/2014/07/18/using-reactjs-with-browserify-and-gulp/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">getting started using React, Browserify and Gulp</a>.</p>\n<figure><a href=\"http://truongtx.me/2014/07/18/using-reactjs-with-browserify-and-gulp/\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 400px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 31.428571428571427%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/jpeg;base64,/9j/2wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkzODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P/2wBDARESEhgVGC8aGi9jQjhCY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P/wgARCAAGABQDASIAAhEBAxEB/8QAFgABAQEAAAAAAAAAAAAAAAAAAAEE/8QAFQEBAQAAAAAAAAAAAAAAAAAAAgH/2gAMAwEAAhADEAAAAcEKQL//xAAXEAEBAQEAAAAAAAAAAAAAAAARAQIS/9oACAEBAAEFAmc0N11//8QAFhEBAQEAAAAAAAAAAAAAAAAAAAIx/9oACAEDAQE/AVa//8QAFREBAQAAAAAAAAAAAAAAAAAAAAH/2gAIAQIBAT8BR//EABcQAAMBAAAAAAAAAAAAAAAAAAAQITH/2gAIAQEABj8CxSH/xAAXEAEBAQEAAAAAAAAAAAAAAAARAQAx/9oACAEBAAE/IaGdagF0kgG//9oADAMBAAIAAwAAABCH7//EABYRAQEBAAAAAAAAAAAAAAAAAAABMf/aAAgBAwEBPxCN3//EABURAQEAAAAAAAAAAAAAAAAAAAAx/9oACAECAQE/EEP/xAAZEAADAQEBAAAAAAAAAAAAAAAAAREhMXH/2gAIAQEAAT8QjnfWZXBa2pRaRgUXh//Z&apos;); background-size: cover; display: block;\">\n      <img class=\"gatsby-resp-image-image\" style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\" alt=\"react browserify gulp\" title src=\"/static/7873a26312d1d592042c1dcd5e756bd4/066f9/react-browserify-gulp.jpg\" srcset=\"/static/7873a26312d1d592042c1dcd5e756bd4/60342/react-browserify-gulp.jpg 210w,\n/static/7873a26312d1d592042c1dcd5e756bd4/066f9/react-browserify-gulp.jpg 400w\" sizes=\"(max-width: 400px) 100vw, 400px\">\n    </span>\n  </span>\n  </a></figure>\n<h2 id=\"react-style\"><a href=\"#react-style\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>React Style </h2>\n<p>After React put HTML inside of JavaScript, Sander Spies takes the same approach with CSS: <a href=\"https://github.com/SanderSpies/react-style\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">IntegratedCSS</a>. It seems weird at first but this is the direction where React is heading.</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">var</span> Button <span class=\"token operator\">=</span> React<span class=\"token punctuation\">.</span><span class=\"token function\">createClass</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  normalStyle<span class=\"token operator\">:</span> <span class=\"token function\">ReactStyle</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span> backgroundColor<span class=\"token operator\">:</span> vars<span class=\"token punctuation\">.</span>orange <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  activeStyle<span class=\"token operator\">:</span> <span class=\"token function\">ReactStyle</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>state<span class=\"token punctuation\">.</span>active<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span> color<span class=\"token operator\">:</span> <span class=\"token string\">'yellow'</span><span class=\"token punctuation\">,</span> padding<span class=\"token operator\">:</span> <span class=\"token string\">'10px'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token function-variable function\">render</span><span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n      <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">styles</span><span class=\"token script language-javascript\"><span class=\"token script-punctuation punctuation\">=</span><span class=\"token punctuation\">{</span><span class=\"token punctuation\">[</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">normalStyle</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span><span class=\"token function\">activeStyle</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">}</span></span><span class=\"token punctuation\">></span></span><span class=\"token plain-text\">\n        Hello, I'm styled\n      </span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"virtual-dom-in-elm\"><a href=\"#virtual-dom-in-elm\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Virtual DOM in Elm </h2>\n<p><a href=\"http://evan.czaplicki.us\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Evan Czaplicki</a> explains how Elm implements the idea of a Virtual DOM and a diffing algorithm. This is great to see React ideas spread to other languages.</p>\n<blockquote>\n<p>Performance is a good hook, but the real benefit is that this approach leads to code that is easier to understand and maintain. In short, it becomes very simple to create reusable HTML widgets and abstract out common patterns. This is why people with larger code bases should be interested in virtual DOM approaches.</p>\n<p><a href=\"http://elm-lang.org/blog/Blazing-Fast-Html.elm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Read the full article</a></p>\n</blockquote>\n<h2 id=\"components-tutorial\"><a href=\"#components-tutorial\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Components Tutorial </h2>\n<p>If you are getting started with React, <a href=\"http://www.joemaddalone.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Joe Maddalone</a> made a good tutorial on how to build your first component.</p>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 30.76923076923077%; position: relative; height: 0; overflow: hidden; \" > <iframe src=\"//www.youtube-nocookie.com/embed/rFvZydtmsxM\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div>\n<h2 id=\"saving-time--staying-sane\"><a href=\"#saving-time--staying-sane\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Saving time &#x26; staying sane? </h2>\n<p>When <a href=\"http://http://kentwilliam.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Kent William Innholt</a> who works at <a href=\"http://mpath.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">M>Path</a> summed up his experience using React in an <a href=\"http://kentwilliam.com/articles/saving-time-staying-sane-pros-cons-of-react-js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">article</a>.</p>\n<blockquote>\n<p>We’re building an ambitious new web app, where the UI complexity represents most of the app’s complexity overall. It includes a tremendous amount of UI widgets as well as a lot rules on what-to-show-when. This is exactly the sort of situation React.js was built to simplify.</p>\n<ul>\n<li><strong>Big win</strong>: Tighter coupling of markup and behavior</li>\n<li><strong>Jury’s still out</strong>: CSS lives outside React.js</li>\n<li><strong>Big win</strong>: Cascading updates and functional thinking</li>\n<li><strong>Jury’s still out</strong>: Verbose propagation</li>\n</ul>\n<p><a href=\"http://kentwilliam.com/articles/saving-time-staying-sane-pros-cons-of-react-js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Read the article…</a></p>\n</blockquote>\n<h2 id=\"weather\"><a href=\"#weather\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Weather </h2>\n<p>To finish this round-up, Andrew Gleave made a page that displays the <a href=\"https://github.com/andrewgleave/react-weather\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Weather</a>. It’s great to see that React is also used for small prototypes.</p>\n<figure><a href=\"https://github.com/andrewgleave/react-weather\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 133px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 112.78195488721805%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAXCAIAAACEf/j0AAAACXBIWXMAABYlAAAWJQFJUiTwAAACqklEQVQ4y5VSS08TURjtL3Dpzo1xYbEPpjMtUlFwgVoSfGETxAD1FTRGQY2JJCYWG01coKZ2Om1n2tryUqBWIYoEadwYXRjRKNjeeUJLKwoIwR/gN1NCLGILycnk3vm+c797zj0q7QGbvtGhb2jbCOx6m0NnvaoCJhGaIZhJwp9cBZxZXpgCqZwSNId/YLdHVbp6O06LOBnH3SgLgpK/RgoZPSxGIgOJ1M7ESlUGNNMSZn+p0tfb5ZMoRHhYABD0JNK6ElWdYteXBQOFyhju3OA0rlSXQSUIZgprG8ohy6Pc6EiPtDfI60h07XVG42bPDqT8H+eKHiZM3rxkKEPTzTczwbH5Qz1SZGIxxi/dezdb5ELFblSAnMXW+/GyAB8TfzcNpswMN5hYbHmVZsbmb4x+17iU+WuScYotpbkzz1PnX0wDZ0v7t813J1pHMs73s5iHLfNz0LD2ZBAMd9sXFoKf5qu7pY7Pv9rf/myIJmPi0pXh9G4/V0zKPfmujVNouzOhcaHGZ0nPh7n+8YVjvZMnIlPR+OJO+v+Ts2SQpHWh5qH0468Lm+6MXxxKwzttexA301yJl8ULGgavVRkWKoICOA+nXB/JwMKoOFLYbULJSXahJRE8ONAKh2Q5ZF621McaKFnC8V6x9olY4mPNK4Lzk00+9mREquoULgxM7g8J1l6xrl862CUUJsM0nRvZIlJtn9Q6nNzj5ywd/OFuoTzAFU6YHG+KrergywP86adSRUA2+VRUnoyt3C6/YWA4aIZIqyHVFAueFbvXZ1gWu2jO1ideikqWEI8r5q2XjCviLWHe2iVU+DkDlXPuKrIk7z3ob+AeBGHWkEiRmgsqDvMUcsMtIpgmfAJBS6tgZBT8819ufpTBHCOqHZV16poW9dHmjaHmclF10x9PLOh3qasSSwAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;\">\n      <img class=\"gatsby-resp-image-image\" style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\" alt=\"weather\" title src=\"/static/8f130f2a80f0e7d4b07d59554f957ec6/8ddb9/weather.png\" srcset=\"/static/8f130f2a80f0e7d4b07d59554f957ec6/8ddb9/weather.png 133w\" sizes=\"(max-width: 133px) 100vw, 133px\">\n    </span>\n  </span>\n  </a></figure>","excerpt":"This has been an exciting summer as four big companies: Yahoo, Mozilla, Airbnb and Reddit announced that they were using React! React’s Architecture  Vjeux, from the React team, gave a talk at OSCON on the history of React and the various optimizations strategies that are implemented. You can also check out the annotated slides or Chris Dawson’s notes titled JavaScript’s History and How it Led To React. v8 optimizations  Jakob Kummerow landed two optimizations to V8 specifically targeted at…","frontmatter":{"title":"Community Round-up #22","next":null,"prev":null,"author":[{"frontmatter":{"name":"Lou Husson","url":"https://twitter.com/loukan42"}}]},"fields":{"date":"September 12, 2014","path":"content/blog/2014-09-12-community-round-up-22.md","slug":"/blog/2014/09/12/community-round-up-22.html"}},"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"Introducing the New JSX Transform"},"fields":{"slug":"/blog/2020/09/22/introducing-the-new-jsx-transform.html"}}},{"node":{"frontmatter":{"title":"React v17.0 Release Candidate: No New Features"},"fields":{"slug":"/blog/2020/08/10/react-v17-rc.html"}}},{"node":{"frontmatter":{"title":"React v16.13.0"},"fields":{"slug":"/blog/2020/02/26/react-v16.13.0.html"}}},{"node":{"frontmatter":{"title":"Building Great User Experiences with Concurrent Mode and Suspense"},"fields":{"slug":"/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense.html"}}},{"node":{"frontmatter":{"title":"Preparing for the Future with React Prereleases"},"fields":{"slug":"/blog/2019/10/22/react-release-channels.html"}}},{"node":{"frontmatter":{"title":"Introducing the New React DevTools"},"fields":{"slug":"/blog/2019/08/15/new-react-devtools.html"}}},{"node":{"frontmatter":{"title":"React v16.9.0 and the Roadmap Update"},"fields":{"slug":"/blog/2019/08/08/react-v16.9.0.html"}}},{"node":{"frontmatter":{"title":"Is React Translated Yet? ¡Sí! Sim! はい！"},"fields":{"slug":"/blog/2019/02/23/is-react-translated-yet.html"}}},{"node":{"frontmatter":{"title":"React v16.8: The One With Hooks"},"fields":{"slug":"/blog/2019/02/06/react-v16.8.0.html"}}},{"node":{"frontmatter":{"title":"React v16.7: No, This Is Not the One With Hooks"},"fields":{"slug":"/blog/2018/12/19/react-v-16-7.html"}}}]}},"pageContext":{"slug":"/blog/2014/09/12/community-round-up-22.html"}},"staticQueryHashes":[]}