UNPKG

2.04 kBJavaScriptView Raw
1import React from 'react';
2import ReactDOM from 'react-dom';
3
4import { AppContainer } from 'react-hot-loader';
5// import walkMD from './walkmd';
6// AppContainer is a necessary wrapper component for HMR
7import {
8 BrowserRouter as Router,
9 Route,
10 Link
11} from 'react-router-dom';
12
13import App from './App';
14
15const render1 = (Component) => {
16 ReactDOM.render(
17 <Router>
18 <div>
19 <AppContainer>
20 <Component/>
21 </AppContainer>
22 <Route path="/about" component={About}/>
23 <Route path="/topics" component={Topics}/>
24 </div>
25 </Router>
26 ,
27 document.getElementById('root')
28 );
29};
30
31const Home = () => (
32 <div>
33 <h2>Home</h2>
34 </div>
35)
36
37const About = () => (
38 <div>
39 <h2>About</h2>
40 </div>
41)
42
43const Topic = ({ match }) => (
44 <div>
45 <h3>{match.params.topicId}</h3>
46 </div>
47)
48
49const Topics = ({ match }) => (
50 <div>
51 <h2>Topics</h2>
52 <ul>
53 <li>
54 <Link to={`${match.url}/rendering`}>
55 Rendering with React
56 </Link>
57 </li>
58 <li>
59 <Link to={`${match.url}/components`}>
60 Components
61 </Link>
62 </li>
63 <li>
64 <Link to={`${match.url}/props-v-state`}>
65 Props v. State
66 </Link>
67 </li>
68 </ul>
69
70 <Route path={`${match.url}/:topicId`} component={Topic}/>
71 <Route exact path={match.url} render={() => (
72 <h3>Please select a topic.</h3>
73 )}/>
74 </div>
75)
76
77const BasicExample = () => (
78 <Router>
79 <div>
80 <ul>
81 <li><Link to="/">Home</Link></li>
82 <li><Link to="/about">About</Link></li>
83 <li><Link to="/topics">Topics</Link></li>
84 </ul>
85
86 <hr/>
87 <Route exact path="/" component={Home}/>
88 <Route path="/about" component={About}/>
89 <Route path="/topics" component={Topics}/>
90 </div>
91 </Router>
92)
93
94const render = (comp) => {
95 ReactDOM.render(<BasicExample/>, document.getElementById('root'));
96}
97
98
99
100
101render(App);
102
103
104// Hot Module Replacement API
105if (module.hot) {
106 module.hot.accept('./App', () => {
107 render(App)
108 });
109}
\No newline at end of file