React Training
  • React JS Library
  • Roadmap
  • Training OutLine
  • React js basics
    • Understanding React JS
    • React JS a framework?
    • Setting Up React
    • Say Hello to React
    • Everything is a Component
    • Create-react-app
  • React Building Blocks
    • JSX and Babel
    • One Way Data Flow
    • Virtual DOM
    • V of MVC
    • React Terminology
    • React Tooling
  • Day 01
    • Day 01 OutLine
    • All About JSX
    • React Tools/ npm & webpack
    • Introduction of Webpack
    • Hello world using webpack
      • Webpack Setting up with React
    • NPM Scripts | Package JSON
      • Package.json file
    • React JS Principles
      • One Way Data Flow
      • V of MVC
      • Virtual DOM
    • Create React App - Part-1
    • Create React App - Part-2
  • Day 02
    • Quick Recap
      • Quiz
    • State & Props
      • State & Props in Depth
      • State Vs Props | Compare
    • React LifeCycle Methods
      • React LifeCycle Methods for V-0.16 x
    • Constructor | Lifecycle
    • Write Flicker App | First App
  • Day 03
    • Quick Recap
    • Life Cycle Flow
      • Birth and Mounting
      • Initlization and Construction
      • Pre Mounting
      • Render Method
      • componentDidMount
    • Type of React Components
      • Examples- Quick Compare
      • Class and Functional components
      • Functional Components
    • YouTube application
      • Component Design
    • All in One LifeCycle
  • Assignment
    • React App development
  • Day 04
    • Quick Recap on Lifecycle
    • Lifecycle deprecated/New Methods
      • New Lifecycle Methods
    • Lets Build App Netflix | Mock
  • Assignment
    • Github battle App | Assignment
  • Day 05
    • Quick Recap : Hooks
    • ES6 Features | Hands-on
      • ES6 Code Examples
    • Next Stop - React Router | SPA
      • Code examples | Router
      • React Router Building Blocks
      • Application using react-router-dom
  • Day 06
    • Router V4 | Quick Recap
    • ES2015 | 16 Quick Recap
    • LifeCycle Methods -Part-1
    • LifeCycle Methods -Part-2
  • Day 07
    • Quick Recap | New Lifecycle
    • Quick Recap | React Routing
    • Context API | React JS
      • component with context APIs
      • Context API | examples
    • App using Hooks/Context APIs
  • Assignment
    • Assignments
  • State Management Day-08
    • Quick Recap
    • Managing React State
      • What is Redux
      • Understanding Redux
      • Hello World "Redux"
  • React Redux Day - 09
    • Redux State Manager
    • Redux Redux Development
    • Simple Application | Redux
  • Redux Live Application Day -10
    • Redux with existing Application
      • Redux with React App
      • Lets Build More Apps
      • Should I use Redux from Dan
    • Quick Look at JS in React
    • Learn By Reading
  • miscellaneous Items - Day 11
    • Hooks useReducer
    • Hooks useContext
    • Hooks useRef
    • Hooks useEffect
    • Hooks useState
    • Lazy Loading and code splitting
    • Styling React Component
  • React Next Step - Day 12
    • Topics
    • Jest and Enjyme Testing
    • Examples: Testing
  • React Native
    • What is React Native
    • Setting up Environment
      • Linux Systems
    • React Native Hello World App
    • React Native Architecture
    • React Native Vs Native
    • Expo Cli or React Native CLI
  • React Native core Fundamental
    • React Native "Hello World"
    • Course OutLine
    • Getting started with Expo App
    • Layout with Flexbox
    • Working with Styles and Events
    • Manging Component State and Props
    • Build Simple Task List Application
  • What to Debug & How to Debug
    • Debug React Native Application
Powered by GitBook
On this page

Was this helpful?

  1. Day 05
  2. Next Stop - React Router | SPA

Application using react-router-dom

lets do hands-on with Router

PreviousReact Router Building BlocksNextRouter V4 | Quick Recap

Last updated 5 years ago

Was this helpful?

Lets build this application with react-router-dom

Our root container using hashRouter

import React from 'react';
import { render } from 'react-dom';
//------------------dashboard-------------------//
import MainComponent from './components/main';

import {HashRouter } from 'react-router-dom'
render(
		<HashRouter>
		   	<div className="container">
			      	<MainComponent />
				</div>
		</HashRouter>
, document.getElementById("app"));

Routing for Root components can be added in our main component, our main component will look like

import { Route, NavLink } from 'react-router-dom';
const MainComponent = (props) => {
    return (<div>
        <nav className="row space-between">
            <ul className="row nav">
                <li><NavLink activeClassName="active" className="nav-link" to="/overview">Overview</NavLink></li>
                <li><NavLink activeClassName="active" className="nav-link" to="/battle" aria-current="page" href="/battle" >Battle</NavLink></li>
            </ul>
        </nav>
        <Route exact path="/" component={GithubOverviewPage} />
        <Route path="/overview" component={GithubOverviewPage} />
        <Route path="/battle" component={BattelPageComponent} />
        <Route exact path="/compare" component={GithubBattlePage} />
        </div>
        )
}

Nexted Routes where we are passing route param as technology name

import React from "react";
import { Route, NavLink, Switch } from 'react-router-dom'
import OverviewTechnologyComponent from '../overview/pages/OverviewTechnologyComponent';

class OverviewPageComponent extends React.Component {

  render(){
  return (
    <div>
    <ul className="flex-center">
        <li><NavLink activeClassName="active" to="/overview/all" className="btn-clear nav-link"> All </NavLink>
        </li><li><NavLink activeClassName="active" to="/overview/js" className="btn-clear nav-link ">JavaScript</NavLink>
        </li><li><NavLink activeClassName="active" to="/overview/ruby" className="btn-clear nav-link ">Ruby</NavLink>
        </li><li><NavLink  activeClassName="active" to="/overview/java" className="btn-clear nav-link ">Java</NavLink>
        </li><li><NavLink activeClassName="active" to="/overview/css" className="btn-clear nav-link ">CSS</NavLink></li>
        <li><NavLink activeClassName="active"   to="/overview/python" className="btn-clear nav-link ">Python</NavLink></li>
      </ul>
      <Switch>
        <Route exact path="/" component={OverviewTechnologyComponent} />
        <Route path="/overview/:name" component={OverviewTechnologyComponent} />
      </Switch>
    </div>)
  }
}
export default OverviewPageComponent;