Skip to content

Commit 843291c

Browse files
Refactor views to ES6 and update routes
- Refactor <About> and <Index> to stateless components - Refactor <Layout> to class component and update click handler to alert title - Refactor `routes/routes.jsx` to ES6
1 parent 89100bc commit 843291c

File tree

4 files changed

+47
-44
lines changed

4 files changed

+47
-44
lines changed

routes/routes.jsx

+14-9
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
var React = require('react');
2-
var ReactRouter = require('react-router');
3-
var Router = ReactRouter.Router;
4-
var Route = ReactRouter.Route;
5-
var IndexRoute = ReactRouter.IndexRoute;
6-
var browserHistory = ReactRouter.browserHistory;
1+
import React from 'react';
2+
import {
3+
Router,
4+
Route,
5+
IndexRoute,
6+
browserHistory
7+
} from 'react-router';
8+
9+
import Layout from '../views/Layout.jsx';
10+
import Index from '../views/Index.jsx';
11+
import About from '../views/About.jsx';
712

813
module.exports = (
914
<Router history={browserHistory}>
10-
<Route path='/' component={require('../views/Layout.jsx')}>
11-
<IndexRoute component={require('../views/Index.jsx')} />
12-
<Route path='about' component={require('../views/About.jsx')} />
15+
<Route path='/' component={Layout}>
16+
<IndexRoute component={Index} />
17+
<Route path='about' component={About} />
1318
</Route>
1419
</Router>
1520
);

views/About.jsx

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
var React = require('react');
1+
import React from 'react';
22

3-
module.exports = React.createClass({
4-
displayName: 'About',
5-
render: function() {
6-
return (
7-
<p>
8-
Current: <strong>About</strong>
9-
</p>
10-
);
11-
}
12-
});
3+
export default function About() {
4+
return (
5+
<p>
6+
Current: <strong>About</strong>
7+
</p>
8+
);
9+
}

views/Index.jsx

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
1-
var React = require('react');
1+
import React from 'react';
22

3-
module.exports = React.createClass({
4-
displayName: 'Index',
5-
render: function() {
6-
return (
7-
<p>
8-
Current: <strong>Index</strong>
9-
</p>
10-
);
11-
}
12-
});
3+
export default function Index() {
4+
return (
5+
<p>
6+
Current: <strong>Index</strong>
7+
</p>
8+
);
9+
}

views/Layout.jsx

+17-13
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
var React = require('react');
2-
var Link = require('react-router').Link;
3-
var connect = require('react-redux').connect;
1+
import React from 'react';
2+
import { Link } from 'react-router';
3+
import { connect } from 'react-redux';
44

5-
var Layout = React.createClass({
6-
_handleClick: function() {
7-
alert();
8-
},
9-
render: function() {
10-
var custom = this.props.custom;
5+
class Layout extends React.Component {
6+
constructor() {
7+
super();
8+
this._handleClick = this._handleClick.bind(this);
9+
}
10+
_handleClick() {
11+
alert(this.props.custom.title);
12+
}
13+
render() {
14+
const { custom } = this.props;
1115
return (
1216
<html>
1317
<head>
@@ -35,12 +39,12 @@ var Layout = React.createClass({
3539
</html>
3640
);
3741
}
38-
});
42+
}
3943

40-
var wrapper = connect(
41-
function(state) {
44+
const wrapper = connect(
45+
(state) => {
4246
return { custom: state };
4347
}
4448
);
4549

46-
module.exports = wrapper(Layout);
50+
export default wrapper(Layout);

0 commit comments

Comments
 (0)