React Fiber is an ongoing reimplementation of React's core algorithm. It is the culmination of over two years of research by the React team.
| import React from "react"; | |
| import { render } from "react-dom"; | |
| const ParentComponent = React.createClass({ | |
| getDefaultProps: function() { | |
| console.log("ParentComponent - getDefaultProps"); | |
| }, | |
| getInitialState: function() { | |
| console.log("ParentComponent - getInitialState"); | |
| return { text: "" }; | 
| var ListenWithMe = (function() { | |
| // Add your own config here | |
| var LASTFM_API_KEY = ""; | |
| var LASTFM_USERNAME = ""; | |
| // Element to inject the widget into | |
| var $playerWrapper = document.getElementById('spotify-player-wrapper'); | |
| return { | |
| init: init | |
| } | 
| The MIT License (MIT) | |
| Copyright (c) 2015 Justin Perry | |
| Permission is hereby granted, free of charge, to any person obtaining a copy of | |
| this software and associated documentation files (the "Software"), to deal in | |
| the Software without restriction, including without limitation the rights to | |
| use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | |
| the Software, and to permit persons to whom the Software is furnished to do so, | |
| subject to the following conditions: | 
Hi Nicholas,
I saw you tweet about JSX yesterday. It seemed like the discussion devolved pretty quickly but I wanted to share our experience over the last year. I understand your concerns. I've made similar remarks about JSX. When we started using it Planning Center, I led the charge to write React without it. I don't imagine I'd have much to say that you haven't considered but, if it's helpful, here's a pattern that changed my opinion:
The idea that "React is the V in MVC" is disingenuous. It's a good pitch but, for many of us, it feels like in invitation to repeat our history of coupled views. In practice, React is the V and the C. Dan Abramov describes the division as Smart and Dumb Components. At our office, we call them stateless and container components (view-controllers if we're Flux). The idea is pretty simple: components can't
| var gulp = require('gulp'); | |
| var sourcemaps = require('gulp-sourcemaps'); | |
| var source = require('vinyl-source-stream'); | |
| var buffer = require('vinyl-buffer'); | |
| var browserify = require('browserify'); | |
| var watchify = require('watchify'); | |
| var babel = require('babelify'); | |
| function compile(watch) { | |
| var bundler = watchify(browserify('./src/index.js', { debug: true }).transform(babel)); | 
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| IMPORTANT | |
| Please duplicate this radar for a Safari fix! | |
| This will clean up a 50-line workaround. | |
| rdar://22376037 (https://openradar.appspot.com/radar?id=4965070979203072) | |
| ////////////////////////////////////////////////////////////////////////////// | |
| (Now available as a standalone repo.) | 
| <html> | |
| <head> | |
| <script> | |
| var request; | |
| var progressBar; | |
| function loadImage(imageURI) | |
| { | |
| request = new XMLHttpRequest(); |