universal javascript in react

26

Upload: apptension

Post on 24-Jan-2017

314 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Universal Javascript in React
Page 2: Universal Javascript in React
Page 3: Universal Javascript in React
Page 4: Universal Javascript in React
Page 5: Universal Javascript in React
Page 6: Universal Javascript in React
Page 7: Universal Javascript in React
Page 8: Universal Javascript in React
Page 9: Universal Javascript in React
Page 10: Universal Javascript in React
Page 11: Universal Javascript in React
Page 13: Universal Javascript in React

class HelloMessage extends React.Component { render() { return <div>Hello {this.props.name}</div>; }}

ReactDOM.render(<HelloMessage name="Sebastian" />, mountNode);

Page 14: Universal Javascript in React

class App extends Component { componentWillMount() { setTimeout(() => { this.setState({title: '5s elapsed!'}) }, 5000) }

render() { return <h1>{this.state.title}</h1>; }}

Page 15: Universal Javascript in React

class LifecycleComponent extends React.Component { componentWillMount() { console.log('Component WILL MOUNT!') }

componentDidMount() { console.log('Component DID MOUNT!') }

componentWillReceiveProps(newProps) { console.log('Component WILL RECEIVE PROPS!') }

componentWillUpdate(nextProps, nextState) { console.log('Component WILL UPDATE!'); }

componentDidUpdate(prevProps, prevState) { console.log('Component DID UPDATE!') }}

Page 16: Universal Javascript in React
Page 17: Universal Javascript in React

import ReactDOM from 'react-dom/server';

ReactDOM.renderToString(<HelloMessage name="Sebastian" />);

Page 18: Universal Javascript in React
Page 19: Universal Javascript in React

import {Router, browserHistory} from 'react-router';

const routes = ( <Route path="/" component={App}> <IndexRoute component={CharacterListContainer}/> <Route path=":id" component={CharacterContainer}/> </Route>);

ReactDOM.render(<Router routes={routes} history={browserHistory}/>, reactRoot);

Page 20: Universal Javascript in React

import fetch from 'isomorphic-fetch';

const promise = fetch('http://example.com/users');

promise.then(onSuccess, onFailure);

function onSuccess(users) { console.table(users.json());}

function onFailure(err) { console.error(err);}

Page 21: Universal Javascript in React
Page 22: Universal Javascript in React

const RootProvider = React.createClass({ render () { return <ReactRouter.RouterContext {...this.props} />; }});

Transmit.renderToString(RootProvider, renderProps).then(({reactString, reactData}) => { let template = ( `<!doctype html> <html> <body> <div id='react-root'>${reactString}</div> </body> </html>` );

return Transmit.injectIntoMarkup(template, reactData, [`/main.js`]);});

Page 23: Universal Javascript in React

const StudentDetailsTransmit = Transmit.createContainer(StudentDetails, { initialVariables: {}, fragments: { student(variables) { return Promise.resolve({ name: variables.name }); } }});

Transmit.render(<StudentDetailsTransmit variables={{name: 'kowalski'}}/>, reactRoot);

// Or with React RouterTransmit.render(ReactRouter.Router, {routes: routes, history: ReactRouter.browserHistory}, reactRoot);

Page 24: Universal Javascript in React
Page 25: Universal Javascript in React