Skip to content
This repository was archived by the owner on Jul 19, 2019. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lessons/01-setting-up/modules/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@ import React from 'react'

export default React.createClass({
render() {
return <div>Hello, React Router!</div>
return <div>Hello, React Router! I'm comming</div>
}
})
13 changes: 12 additions & 1 deletion lessons/02-rendering-a-route/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
import React from 'react'
import { render } from 'react-dom'
import App from './modules/App'
render(<App/>, document.getElementById('app'))
import { Router, Route, hashHistory } from 'react-router'
import About from './modules/About'
import Repos from './modules/Repos'

render((
<Router history={hashHistory}>
<Route path="/"
component={App} />
<Route path="/repos" component={Repos} />
<Route path="/about" component={About} />
</Router>
), document.getElementById('app'))
8 changes: 8 additions & 0 deletions lessons/02-rendering-a-route/modules/About.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import React from 'react'

export default React.createClass({
render() {
return <div>About</div>
}
})

9 changes: 9 additions & 0 deletions lessons/02-rendering-a-route/modules/Repos.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import React from 'react'

export default React.createClass({
render() {
return <div>Repos</div>
}
})


18 changes: 17 additions & 1 deletion lessons/03-navigating-with-link/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from 'react'
/*import React from 'react'
import { render } from 'react-dom'
import { Router, Route, hashHistory } from 'react-router'
import App from './modules/App'
Expand All @@ -12,3 +12,19 @@ render((
<Route path="/about" component={About}/>
</Router>
), document.getElementById('app'))
*/
import React from 'react'
import ReactDOM from 'react-dom'
import { Router, Route, hashHistory } from 'react-router'
import App from './modules/App'
import About from './modules/About'
import Repos from './modules/Repos'

ReactDOM.render(
<Router history={hashHistory}>
<Route path="/" component={App}/>
<Route path="/repos" component={Repos}/>
<Route path="/about" component={About}/>
</Router>,
document.getElementById('app')
)
13 changes: 12 additions & 1 deletion lessons/03-navigating-with-link/modules/App.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
import React from 'react'
import { Link } from 'react-router'

export default React.createClass({
render() {
return <div>Hello, React Router!</div>
return (
<div>
<h1>React Router Tudorial</h1>
<ul role="nav">
<li><Link to="/about" >About</Link></li>
<li><Link to="/repos" >Repos</Link></li>
</ul>
</div>
)
}
})


1 change: 1 addition & 0 deletions lessons/04-nested-routes/modules/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export default React.createClass({
<li><Link to="/about">About</Link></li>
<li><Link to="/repos">Repos</Link></li>
</ul>
{this.props.childre}
</div>
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
.active {
.active{
color: green;
}
}
1 change: 1 addition & 0 deletions lessons/05-active-links/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@
<html>
<meta charset=utf-8/>
<title>My First React Router App</title>
<link rel="stylesheet" href="index.css" />
<div id=app></div>
<script src="bundle.js"></script>
5 changes: 3 additions & 2 deletions lessons/05-active-links/modules/App.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import React from 'react'
import { Link } from 'react-router'
import NavLink from './NavLink'

export default React.createClass({
render() {
return (
<div>
<h1>React Router Tutorial</h1>
<ul role="nav">
<li><Link to="/about">About</Link></li>
<li><Link to="/repos">Repos</Link></li>
<li><NavLink to="/about">About</NavLink></li>
<li><NavLink to="/repos">Repos</NavLink></li>
</ul>
{this.props.children}
</div>
Expand Down
10 changes: 10 additions & 0 deletions lessons/05-active-links/modules/NavLink.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react'
import { Link } from 'react-router'

export default React.createClass({
render() {
return (
<Link {...this.props} activeClassName="active"></Link>
)
}
})
3 changes: 3 additions & 0 deletions lessons/06-params/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ import { Router, Route, hashHistory } from 'react-router'
import App from './modules/App'
import About from './modules/About'
import Repos from './modules/Repos'
import Repo from './modules/Repo'

render((
<Router history={hashHistory}>
<Route path="/" component={App}>
<Route path="/repos" component={Repos}/>
{/* add the new route */}
<Route path="/repos/:userName/:repoName" component={Repo}/>
<Route path="/about" component={About}/>
</Route>
</Router>
Expand Down
11 changes: 11 additions & 0 deletions lessons/06-params/modules/Repo.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import React from 'react'

export default React.createClass({
render() {
return (
<div>
<h2>{this.props.params.repoName}</h2>
</div>
)
}
})
13 changes: 12 additions & 1 deletion lessons/06-params/modules/Repos.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
import React from 'react'
import NavLink from './NavLink'

export default React.createClass({
render() {
return <div>Repos</div>
return (
<div>
<h2>Repos</h2>
{/* add some links */}
<ul>
<li><NavLink to="/repos/reactjs/react-router">React-router</NavLink></li>
<li><NavLink to="/repos/facebook/react">React-Link</NavLink></li>
</ul>
{this.props.children}
</div>
)
}
})
5 changes: 3 additions & 2 deletions lessons/07-more-nesting/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ import Repo from './modules/Repo'
render((
<Router history={hashHistory}>
<Route path="/" component={App}>
<Route path="/repos" component={Repos}/>
<Route path="/repos/:userName/:repoName" component={Repo}/>
<Route path="/repos" component={Repos}>
<Route path="/repos/:userName/:repoName" component={Repo} />
</Route>
<Route path="/about" component={About}/>
</Route>
</Router>
Expand Down
8 changes: 5 additions & 3 deletions lessons/07-more-nesting/modules/Repos.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
import React from 'react'
import { Link } from 'react-router'
import NavLink from './NavLink'

export default React.createClass({
render() {
return (
<div>
<h2>Repos</h2>
<ul>
<li><Link to="/repos/reactjs/react-router">React Router</Link></li>
<li><Link to="/repos/facebook/react">React</Link></li>
<li><NavLink to="/repos/reactjs/react-router">React-router</NavLink></li>
<li><NavLink to="/repos/facebook/react">React</NavLink></li>
{/* will render 'Repo.js' when at /repos/:userName/:repoName */}
{this.props.children}
</ul>
</div>
)
Expand Down
9 changes: 6 additions & 3 deletions lessons/08-index-routes/index.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
import React from 'react'
import { render } from 'react-dom'
import { Router, Route, hashHistory } from 'react-router'
import { Router, Route, hashHistory, IndexRoute } from 'react-router'
import App from './modules/App'
import About from './modules/About'
import Repos from './modules/Repos'
import Repo from './modules/Repo'
import Home from './modules/Home'

render((
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Home} />

<Route path="/repos" component={Repos}>
<Route path="/repos/:userName/:repoName" component={Repo}/>
<Route path="/repos/:userName/:repoName" component={Repo} />
</Route>
<Route path="/about" component={About}/>
<Route path="/about" component={About} />
</Route>
</Router>
), document.getElementById('app'))
3 changes: 2 additions & 1 deletion lessons/08-index-routes/modules/App.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react'
import NavLink from './NavLink'
import Home from './Home'

export default React.createClass({
render() {
Expand All @@ -10,7 +11,7 @@ export default React.createClass({
<li><NavLink to="/about">About</NavLink></li>
<li><NavLink to="/repos">Repos</NavLink></li>
</ul>
{this.props.children}
{this.props.children || <Home />}
</div>
)
}
Expand Down
8 changes: 8 additions & 0 deletions lessons/08-index-routes/modules/Home.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import React from 'react'

export default React.createClass({
render() {
return <div>Home</div>
{this.props.children || <Home />}
}
})
4 changes: 3 additions & 1 deletion lessons/09-index-links/modules/App.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import React from 'react'
// import { IndexLink } from 'react-router'
import NavLink from './NavLink'

export default React.createClass({
render() {
return (
<div>
<h1>React Router Tutorial</h1>
<ul role="nav">
<ul role="nav">
<li><NavLink to="/" activeClassName={true}>Home</NavLink></li>
<li><NavLink to="/about">About</NavLink></li>
<li><NavLink to="/repos">Repos</NavLink></li>
</ul>
Expand Down
4 changes: 2 additions & 2 deletions lessons/10-clean-urls/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<html>
<meta charset=utf-8/>
<title>My First React Router App</title>
<link rel=stylesheet href=index.css>
<link rel=stylesheet href="/index.css">
<div id=app></div>
<script src="bundle.js"></script>
<script src="/bundle.js"></script>
2 changes: 1 addition & 1 deletion lessons/10-clean-urls/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import Repo from './modules/Repo'
import Home from './modules/Home'

render((
<Router history={hashHistory}>
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Home}/>
<Route path="/repos" component={Repos}>
Expand Down
2 changes: 1 addition & 1 deletion lessons/10-clean-urls/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server --inline --content-base ."
"start": "webpack-dev-server --inline --content-base . --history-api-fallback"
},
"author": "",
"license": "ISC",
Expand Down
7 changes: 6 additions & 1 deletion lessons/11-productionish-server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,16 @@
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server --inline --content-base . --history-api-fallback"
"start": "if-env NODE_ENV=production && npm run start:prod || npm run start:dev",
"start:dev": "webpack-dev-server --inline --content-base public --history-api-fallback",
"start:prod": "webpack && node server.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"compression": "^1.6.2",
"express": "^4.14.0",
"if-env": "^1.0.0",
"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-router": "^2.0.0"
Expand Down
6 changes: 6 additions & 0 deletions lessons/11-productionish-server/public/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
body{
background-color: #f9f9f9;
}
.active {
color: green;
}
22 changes: 22 additions & 0 deletions lessons/11-productionish-server/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// server.js

var express = require('express')
var path = require('path')
var compression = require('compression')

var app = express()

// serve our static stuff like index.css
app.use(compression())
app.use(express.static(path.join(__dirname, "public")))

// send all requests to index.html so browserHistory in React Router works
app.get("*", function(req, res) {
res.sendFile(path.join(__dirname, "public" "index.html"))
})

var PORT = process.env.PORT || 8080

app.listen(PORT, function() {
console.log('Production Express server running at localhost:' + PORT);
})
11 changes: 10 additions & 1 deletion lessons/11-productionish-server/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ module.exports = {
entry: './index.js',

output: {
path: 'public',
filename: 'bundle.js',
publicPath: '/'
},
Expand All @@ -10,5 +11,13 @@ module.exports = {
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader?presets[]=es2015&presets[]=react' }
]
}
},

// add this handful of plugins that optimize the build
// when we're in production
plugins: process.env.NODE_ENV === 'production' ? [
new webpack.optimize.DedupePlugin(),
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.UglifyJsPlugin()
] : [],
}
Loading