Use [Facebook Create App](https://github.com/facebookincubator/create-react-app)
Very simple app (in CodePen : https://codepen.io/anon/pen/JOjevM)
```
const App = () => (
Cool App
)
ReactDOM.render(,document.getElementById("app"));
```
## APIs
Creating an API
```
const PlayerAPI = {
players: [
{ number: 1, name: "Ben Blocker", position: "G" },
{ number: 2, name: "Dave Defender", position: "D" },
{ number: 3, name: "Sam Sweeper", position: "D" },
{ number: 4, name: "Matt Midfielder", position: "M" },
{ number: 5, name: "William Winger", position: "M" },
{ number: 6, name: "Fillipe Forward", position: "F" }
],
all: function() {
return this.players;
},
get: function(id) {
const isPlayer = p => p.number === id;
return this.players.find(isPlayer);
}
};
```
Using the API
```
const App = () => (
Cool App
{PlayerAPI.all().map(p => (
-
{p.name}
))}
);
```
Other component
```
const Detail = (props) => (
{props.player.name}
);
```
or shorter:
```
const Detail = ({player}) => (
{player.name}
);
```
Using the component:
```
ReactDOM.render(
,
document.getElementById("app"));```
# React Router
You need to import some stuff :
```
import React from 'react'
import { render } from 'react-dom'
import { BrowserRouter } from 'react-router-dom'
import App from './components/App';
```
or
```
const { BrowserRouter, Switch, Route, Link } = ReactRouterDOM;
```
and code:
```
render((
), document.getElementById('root'));
```
Your main app should define the top level routes
```
const App = () => (
);
```
Our header section simply displays the links to the routes
```
const Header = () => (
);
```
When we click a link, a certain route is activated and the assoicated component is rendered.
When clicking masterdetail link, the MasterDetail component is rendered:
```
const MasterDetail = () => (
);
```
The MasterDetail is capable of rendering 2 components. Master or Detail, depending on the path.