fe-boilerplate/app/app.tsx

49 lines
833 B
TypeScript
Raw Normal View History

2015-09-15 08:10:14 +02:00
/// <reference path="../typings/react/react.d.ts" />
import React = require('react');
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() {
React.render(
<Demo name="World" />,
document.getElementById('app')
);
}
render();