fe-boilerplate/app/app.tsx

50 lines
868 B
TypeScript
Raw Normal View History

2015-10-29 13:51:07 +01:00
/// <reference path="../typings/tsd.d.ts" />
2015-09-15 08:10:14 +02:00
import React = require('react');
2015-10-29 13:51:07 +01:00
import ReactDOM = require('react-dom');
import {observable} from 'mobservable';
import {observer} from 'mobservable-react';
2015-09-15 08:10:14 +02:00
class DemoProps {
public name: string;
}
class Demo extends React.Component<DemoProps, any> {
constructor(props: DemoProps) {
super(props);
}
render() {
return (
<div>
<div>Hello {this.props.name}!</div>
<Timer/>
</div>
2015-09-15 08:10:14 +02:00
);
}
}
var timerState = observable({
secondsPassed: 0
});
setInterval(() => timerState.secondsPassed++, 1000);
@observer
class Timer extends React.Component<{}, {}> {
render() {
return (
<span>Seconds passed: {timerState.secondsPassed}</span>
)
}
}
2015-09-15 08:10:14 +02:00
function render() {
2015-10-29 13:51:07 +01:00
ReactDOM.render(
2015-09-15 08:10:14 +02:00
<Demo name="World" />,
document.getElementById('app')
);
}
render();