--- title: "Community Round-up #13" author: [vjeux] --- Happy holidays! This blog post is a little-late Christmas present for all the React users. Hopefully it will inspire you to write awesome web apps in 2014! ## React Touch {#react-touch} [Pete Hunt](http://www.petehunt.net/) wrote three demos showing that React can be used to run 60fps native-like experiences on mobile web. A frosted glass effect, an image gallery with 3d animations and an infinite scroll view. [Try out the demos!](https://petehunt.github.io/react-touch/) ## Introduction to React {#introduction-to-react} [Stoyan Stefanov](http://www.phpied.com/) talked at Joe Dev On Tech about React. He goes over all the features of the library and ends with a concrete example. ## JSX: E4X The Good Parts {#jsx-e4x-the-good-parts} JSX is often compared to the now defunct E4X, [Vjeux](http://blog.vjeux.com/) went over all the E4X features and explained how JSX is different and hopefully doesn't repeat the same mistakes. > E4X (ECMAScript for XML) is a JavaScript syntax extension and a runtime to manipulate XML. It was promoted by Mozilla but failed to become mainstream and is now deprecated. JSX was inspired by E4X. In this article, I'm going to go over all the features of E4X and explain the design decisions behind JSX. > > **Historical Context** > > E4X has been created in 2002 by John Schneider. This was the golden age of XML where it was being used for everything: data, configuration files, code, interfaces (DOM) ... E4X was first implemented inside of Rhino, a JavaScript implementation from Mozilla written in Java. > > [Continue reading ...](http://blog.vjeux.com/2013/javascript/jsx-e4x-the-good-parts.html) ## React + Socket.io {#react--socketio} [Geert Pasteels](http://enome.be/nl) made a small experiment with Socket.io. He wrote a very small mixin that synchronizes React state with the server. Just include this mixin to your React component and it is now live! ```javascript changeHandler: function (data) { if (!_.isEqual(data.state, this.state) && this.path === data.path) { this.setState(data.state); } }, componentDidMount: function (root) { this.path = utils.nodePath(root); socket.on('component-change', this.changeHandler); }, componentWillUpdate: function (props, state) { socket.emit('component-change', { path: this.path, state: state }); }, componentWillUnmount: function () { socket.removeListener('component-change', this.change); } ``` [Check it out on GitHub...](https://github.com/Enome/react.io) ## cssobjectify {#cssobjectify} [Andrey Popp](http://andreypopp.com/) implemented a source transform that takes a CSS file and converts it to JSON. This integrates pretty nicely with React. ```javascript /* style.css */ MyComponent { font-size: 12px; background-color: red; } /* myapp.js */ var React = require('react-tools/build/modules/React'); var Styles = require('./styles.css'); var MyComponent = React.createClass({ render: function() { return (
I may be starting to get annoying with this, but ReactJS is really exciting. I truly feel the virtual DOM is a game changer.
— Eric Florenzano (@ericflo) December 20, 2013