Skip to content

Instantly share code, notes, and snippets.

@caseywebdev
Created May 13, 2014 23:46
Show Gist options
  • Save caseywebdev/01736ad5e768e04b09b4 to your computer and use it in GitHub Desktop.
Save caseywebdev/01736ad5e768e04b09b4 to your computer and use it in GitHub Desktop.
React + Backbone Example
import React from 'react';
import User from 'user';
import UserComponent from 'user-component';
var user = new User.Model({id: 1});
React.renderComponent(User({user: user}), document.body);
export default {
componentWillMount: function () {
(this.listeners = this.getListeners()).forEach(function (listener) {
listener.model.on(listener.events, this);
}, this);
},
componentWillUnmount: function () {
this.listeners.forEach(function (listener) {
listener.model.off(listener.events, this);
}, this);
}
};
import React from 'react';
import ListenersMixin from 'listeners-mixin';
export default React.createClass({
mixins: [ListenersMixin],
getListeners: function () {
return [{
model: this.props.user,
events: {change: this.forceUpdate.bind(this, null)}
}];
},
componentWillMount: function () {
this.props.user.fetch();
},
render: function () {
var user = this.props.user;
return (
<div className='user'>
<h1>{user.get('name')}</h1>
<h2>{user.get('title')}</h1>
</div>
);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment