Skip to content

Instantly share code, notes, and snippets.

View hpjaj's full-sized avatar

Harry Levine hpjaj

View GitHub Profile
# config/routes.rb
Rails.application.routes.draw do
root 'pages#index'
# IMPORTANT #
# This `match` must be the *last* route in routes.rb
match '*path', to: 'pages#index', via: :all
end
// app/javascript/components/App.js
...
class App extends React.Component {
render() {
return (
<div>
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/posts" component={Posts} />
// app/javascript/components/App.js
...
import { Route, Switch } from 'react-router-dom'
// app/javascript/packs/index.js
...
<Router>
<Route path="/" component={App} />
</Router>,
// app/javascript/packs/index.js
...
document.addEventListener('DOMContentLoaded', () => {
ReactDOM.render(
<Router>
</Router>,
document.body.appendChild(document.createElement('div')),
)
// app/javascript/packs/index.js
...
import { BrowserRouter as Router, Route } from 'react-router-dom'
// app/javascript/components/App.js
import React from 'react'
import Home from './Home'
import Posts from './Posts'
import NewPost from './NewPost'
...
// app/javascript/components/NewPost.js
import React from 'react'
class NewPost extends React.Component {
render() {
return (
<div>
NewPost page
</div>
// app/javascript/components/Posts.js
import React from 'react'
class Posts extends React.Component {
render() {
return (
<div>
Posts page
</div>
// app/javascript/components/Home.js
import React from 'react'
class Home extends React.Component {
render() {
return (
<div>
Home page
</div>