{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2013/08/05/community-roundup-6.html","result":{"data":{"markdownRemark":{"html":"<p>This is the first Community Round-up where none of the items are from Facebook/Instagram employees. It’s great to see the adoption of React growing.</p>\n<h2 id=\"react-game-tutorial\"><a href=\"#react-game-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>React Game Tutorial </h2>\n<p><a href=\"https://twitter.com/CalebCassel\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Caleb Cassel</a> wrote a <a href=\"https://rawgithub.com/calebcassel/react-demo/master/part1.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">step-by-step tutorial</a> about making a small game. It covers JSX, State and Events, Embedded Components and Integration with Backbone.</p>\n<figure><a href=\"https://rawgithub.com/calebcassel/react-demo/master/part1.html\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 313px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 104.76190476190477%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAERElEQVQ4y2M4f+/z2hOv1h1/seLo69Un3m86/nzvycdrTn5advjV5tOvD13/sO7kqzXHXqw49gYou+X40z2nnq4+8XHpoZe7Lrxl2HL+beO6R3073izeeGrhpMmLu1tnFKdN65zau/hM18bHCw8+b97wZMKOV0vXHlowoX9xZ+PUovSZ/fPbF1+ctuMpw+FbH6bteVxY0x/vZOCjLTUx2fVYX2x7iG5tYfXqUx+2nH89efvdnMK6aFuNAF3ZeXk+h7uj6n00mxunbL74heHayz/1tQ3sDAzMTEwMDAxyQjy7OuNbo23qq9v3X/986t7nnNQURgYGFmZmoKyhgujhCSnlAWZdffNP3P3GcP/1987CFDagNAsrFyuzrpRwhKmmn470rAmTTt77fPXBq5IIT6A2NlZWXnYWUznxCFONIAOFZYtXXXj0lWH3lp0Ta0obIsyNpIUt5SQcVORURQU9tOSasxJXLFq6cuHyKTX5xb56epJCNgpStkqyQNlAQ5WOopwNq9czzJ82LTXYc1qah6OCnpagmrKgpJmChKeuooOm0sTqys66+rwIz4nxruaSWtpCqkqCYtYq0u7aCq56Ggt6uhnm9nd7mRn46+rmmHsFymkZCnHJ8XPzMTPqyUo2ZSW3luS7m+iF6hlmmXn5SivrCnHJ8HEBZc1V5CdWlzKsntTfHec3JdPVT102X1rQkI1BkJXVVEEqxcWsITN+annJlLTAjni7AGXpPAk+NVYGYXZ2WzWFNFfznooChikd7fHOpvOLAnoSHLOcDaKsjBNd7eLdHNI9LHOjAkrT07K8reYV+rXH2KU56Edbmya62Sd5Oqe5m1dmJjF8//b9w/v3nz8A0YdPH95/+fjh88eP379+/f3r58+f3//8/vP186fvXz5/+/wJLPvx88cPn0BqPgAFGP4jgX///gHJL58+7tm798zZs2fPnDlwYP+LV6+uXrn89MUruAI4gGiGC4EYf//+vnnr9rGjR04cP3Ho0KG79x8AwavXb3Fp/o9pPxD8/vb139+/QO6Pz5/Ahv7FqRki8fXLl9OnTn3//mNra+HB+VPfPnm4LD/y1tGDv/78PXXixPfv35FNZ4A599/ff3+BjKdPn9y8dfPPrx9nNyx5cfPiu6ePz6ye9+P96+fPX9y4fg2k8u/f/2iayQMM/8CB9Ozrs6vvrl57dw2Orr6+fOvj7W9vX/64dOnH5Us/rl7+fuXyj6tXfly5/PvFc4g/oZrbzrQl7k0uPlKceygn91Be3uG83ANZicezjk+vfRUZ+aQw52la4tP05KcZKY/Dg191taNoLtlTGrQmrHZfTcXeipwd+bX766t2lXtvDd1cl3zF1uZycf7llIRLifHXq0rPutjdKMiGaQb7fsu1Lb2HeycdmzTx6MRJIDRp8pFJ08/OvbZ7/c3G+qvNddea64HoelvzlbqqJxvWQcIcAOcfMyAXfxYPAAAAAElFTkSuQmCC&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=\"dog tutorial\" title src=\"/static/06130eab5bfa60ef72b5a8249ed07565/80977/dog-tutorial.png\" srcset=\"/static/06130eab5bfa60ef72b5a8249ed07565/65ed1/dog-tutorial.png 210w,\n/static/06130eab5bfa60ef72b5a8249ed07565/80977/dog-tutorial.png 313w\" sizes=\"(max-width: 313px) 100vw, 313px\">\n    </span>\n  </span>\n  </a></figure>\n<h2 id=\"reactify\"><a href=\"#reactify\" 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>Reactify </h2>\n<p><a href=\"http://andreypopp.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Andrey Popp</a> created a <a href=\"http://browserify.org/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Browserify</a> helper to compile JSX files.</p>\n<blockquote>\n<p>Browserify v2 transform for <code class=\"gatsby-code-text\">text/jsx</code>. Basic usage is:</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"gatsby-code-text\"><code class=\"gatsby-code-text\">% browserify -t reactify main.jsx</code></pre></div>\n<p><code class=\"gatsby-code-text\">reactify</code> transform activates for files with either <code class=\"gatsby-code-text\">.jsx</code> extension or <code class=\"gatsby-code-text\">/** @jsx React.DOM */</code> pragma as a first line for any <code class=\"gatsby-code-text\">.js</code> file.</p>\n<p><a href=\"https://github.com/andreypopp/reactify\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Check it out on GitHub…</a></p>\n</blockquote>\n<h2 id=\"react-integration-with-este\"><a href=\"#react-integration-with-este\" 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 Integration with Este </h2>\n<p><a href=\"http://daniel.steigerwald.cz/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Daniel Steigerwald</a> is now using React within <a href=\"https://github.com/steida/este\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Este</a>, which is a development stack for web apps in CoffeeScript that are statically typed using the Closure Library.</p>\n<div class=\"gatsby-highlight\" data-language=\"coffeescript\"><pre class=\"gatsby-code-coffeescript\"><code class=\"gatsby-code-coffeescript\">este<span class=\"token punctuation\">.</span>demos<span class=\"token punctuation\">.</span>react<span class=\"token punctuation\">.</span>todoApp <span class=\"token operator\">=</span> este<span class=\"token punctuation\">.</span>react<span class=\"token punctuation\">.</span><span class=\"token function\">create</span> <span class=\"token punctuation\">(</span><span class=\"token inline-javascript\"><span class=\"token delimiter punctuation\">`</span><span class=\"token comment\">/** @lends {React.ReactComponent.prototype} */</span><span class=\"token delimiter punctuation\">`</span></span><span class=\"token punctuation\">)</span>\n  <span class=\"token property\">render</span><span class=\"token operator\">:</span> <span class=\"token operator\">-</span><span class=\"token operator\">></span>\n    <span class=\"token class-member variable\">@div</span> <span class=\"token punctuation\">[</span>\n      este<span class=\"token punctuation\">.</span>demos<span class=\"token punctuation\">.</span>react<span class=\"token punctuation\">.</span>todoList <span class=\"token string\">'items'</span><span class=\"token operator\">:</span> <span class=\"token class-member variable\">@state</span><span class=\"token punctuation\">[</span><span class=\"token string\">'items'</span><span class=\"token punctuation\">]</span>\n      <span class=\"token keyword\">if</span> <span class=\"token class-member variable\">@state</span><span class=\"token punctuation\">[</span><span class=\"token string\">'items'</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">.</span>length\n        <span class=\"token class-member variable\">@p</span> <span class=\"token string\">\"<span class=\"token interpolation variable\">#{@state['items'].length}</span> items.\"</span>\n      <span class=\"token class-member variable\">@form</span> <span class=\"token string\">'onSubmit'</span><span class=\"token operator\">:</span> <span class=\"token class-member variable\">@onFormSubmit</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token class-member variable\">@input</span>\n          <span class=\"token string\">'onChange'</span><span class=\"token operator\">:</span> <span class=\"token class-member variable\">@onChange</span>\n          <span class=\"token string\">'value'</span><span class=\"token operator\">:</span> <span class=\"token class-member variable\">@state</span><span class=\"token punctuation\">[</span><span class=\"token string\">'text'</span><span class=\"token punctuation\">]</span>\n          <span class=\"token string\">'autoFocus'</span><span class=\"token operator\">:</span> <span class=\"token keyword\">true</span>\n          <span class=\"token string\">'ref'</span><span class=\"token operator\">:</span> <span class=\"token string\">'textInput'</span>\n        <span class=\"token class-member variable\">@button</span> <span class=\"token string\">\"Add #<span class=\"token interpolation variable\">#{@state['items'].length + 1}</span>\"</span>\n      <span class=\"token punctuation\">]</span>\n    <span class=\"token punctuation\">]</span></code></pre></div>\n<p><a href=\"https://github.com/steida/este-library/blob/master/este/demos/thirdparty/react/start.coffee\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Check it out on GitHub…</a></p>\n<h2 id=\"react-stylus-boilerplate\"><a href=\"#react-stylus-boilerplate\" 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 Stylus Boilerplate </h2>\n<p><a href=\"https://zaim.github.io/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Zaim Bakar</a> shared his boilerplate to get started with Stylus CSS processor.</p>\n<blockquote>\n<p>This is my boilerplate React project using Grunt as the build tool, and Stylus as my CSS preprocessor.</p>\n<ul>\n<li>Very minimal HTML boilerplate</li>\n<li>Uses Stylus, with nib included</li>\n<li>\n<p>Uses two build targets:</p>\n<ul>\n<li><code class=\"gatsby-code-text\">grunt build</code> to compile JSX and Stylus into a development build</li>\n<li><code class=\"gatsby-code-text\">grunt dist</code> to minify and optimize the development build for production</li>\n</ul>\n</li>\n</ul>\n<p><a href=\"https://github.com/zaim/react-stylus-boilerplate\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Check it out on GitHub…</a></p>\n</blockquote>\n<h2 id=\"webfui\"><a href=\"#webfui\" 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>WebFUI </h2>\n<p><a href=\"http://lisperati.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Conrad Barski</a>, author of the popular book <a href=\"http://landoflisp.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Land of Lisp</a>, wants to use React for his ClojureScript library called <a href=\"https://github.com/drcode/webfui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">WebFUI</a>.</p>\n<blockquote>\n<p>I’m the author of ”<a href=\"http://landoflisp.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Land of Lisp</a>” and I love your framework. I built a somewhat similar framework a year ago <a href=\"https://github.com/drcode/webfui\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">WebFUI</a> aimed at ClojureScript. My framework also uses global event delegates, a global “render” function, DOM reconciliation, etc just like react.js. (Of course these ideas all have been floating around the ether for ages, always great to see more people building on them.)</p>\n<p>Your implementation is more robust, and so I think the next point release of webfui will simply delegate all the “hard work” to react.js and will only focus on the areas where it adds value (enabling purely functional UI programming in clojurescript, and some other stuff related to streamlining event handling)</p>\n<figure><a href=\"https://groups.google.com/forum/#!msg/reactjs/e3bYersyd64/qODfcuBR9LwJ\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 415px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 46.19047619047619%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAA7DAAAOwwHHb6hkAAACJklEQVQoz2NgYGBgZGJgY2TlZOLnYhQTYNQ0ZcjwEm2TrTGQmq0SKjYtTXm1F08dL5MISCUDEwMyEGKVl2EyElGwZRSTYhOT1FKxUwu2cwlJz8/uLoydWq65UbXVIEJ/ciLDCgVWc7BuZkYGZqhmQ45IM4YotpRK6czkCdVTkzdnq+1RsV1nGzY7YXrB5knVa+JbSzNCZ6cJbkpkWW3NmsLGygE2ggWkWZ85RpshKq94xsRnt3NOTlY9oq66U9dwtpXhOmPXxV47pN4sZviSG7woNqovTKo7gnWhP0O/MJMCUD/Ifk+Jop2LTl85cM18r6nBbluz4956C711t1gq7dJQm29dE3u8JHi/e2ardV94mtWkZP3+NN71CZxLNNlcgboZJtcv+P/l/5UljycsnGO0zzhuep3WYU+1tQXiW20YN+fPv7Qv8XW0zFM5kb3yxrOcl21Ye/rQ6RLXOVEMq53Y8hkS7Ktqz9WvXb1td98Z3wXBUXMTnTcEGe2IFdgUwbBnj+P5ad0Peh0e2jN8ZmB4ysB/jithb/OyaZurIudGMCxhqIjq2rrhiON8X6k9MlM6Fu2Pe7bO+IbrAk/HCdO0Z6xxOty0+96++qcV0s+leK+yWez0ydm25NyFs9vPbiy2n8sQbJZytuDDlvyL1fW9UctS59ZsCpySmGTVPV30jX/5rIy2vqOrzh6+uzfoZYjC5ZjyPfuuXLl54+b1g4eONkctAQC0+c7lQlWcywAAAABJRU5ErkJggg==&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=\"landoflisp\" title src=\"/static/5439e8d50448bcd20ad4c93c5b8eb9a3/73926/landoflisp.png\" srcset=\"/static/5439e8d50448bcd20ad4c93c5b8eb9a3/65ed1/landoflisp.png 210w,\n/static/5439e8d50448bcd20ad4c93c5b8eb9a3/73926/landoflisp.png 415w\" sizes=\"(max-width: 415px) 100vw, 415px\">\n    </span>\n  </span>\n  </a></figure>\n<p><a href=\"https://groups.google.com/forum/#!msg/reactjs/e3bYersyd64/qODfcuBR9LwJ\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Read the full post…</a></p>\n</blockquote>","excerpt":"This is the first Community Round-up where none of the items are from Facebook/Instagram employees. It’s great to see the adoption of React growing. React Game Tutorial  Caleb Cassel wrote a step-by-step tutorial about making a small game. It covers JSX, State and Events, Embedded Components and Integration with Backbone. Reactify  Andrey Popp created a Browserify helper to compile JSX files. Browserify v2 transform for . Basic usage is:  transform activates for files with either  extension or…","frontmatter":{"title":"Community Round-up #6","next":null,"prev":null,"author":[{"frontmatter":{"name":"Vjeux","url":"https://twitter.com/vjeux"}}]},"fields":{"date":"August 05, 2013","path":"content/blog/2013-08-05-community-roundup-6.md","slug":"/blog/2013/08/05/community-roundup-6.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/2013/08/05/community-roundup-6.html"}},"staticQueryHashes":[]}