React Js / UI / Multiple layout with route
Multiple Layout
-
1. Step
Step 1: Install Bootstrap
npm install react-bootstrap bootstrap Step 2: install route
npm install react-router-dom Step 3: Create Pages
pages/Home.tsxsrc/ ├── layouts/ │ ├── PublicLayout.tsx │ └── DashboardLayout.tsx ├── pages/ │ ├── Home.tsx │ ├── Login.tsx │ ├── About.tsx │ └── DashboardHome.tsx │ └── DashboardUsers.tsx └── App.tsx
pages/About.tsxfunction Home() { return Home Page
; } export default Home;
pages/Login.tsxfunction About() { return About Page
; } export default About;
pages/DashboardHome.tsxfunction Login() { return Login Page
; } export default Login;
pages/DashboardUsers.tsxfunction DashboardHome() { return DashboardHome Page
; } export default DashboardHome;function DashboardUsers() { return DashboardUsers Page
; } export default DashboardUsers;Step 4: Create Common Layout
1. /layouts/PublicLayout.tsx
import React from 'react'; import { Outlet, Link } from 'react-router-dom'; const PublicLayout: React.FC = () => ( <> > ); export default PublicLayout;2. layouts/DashboardLayout.tsx
import React from 'react'; import { Outlet, Link } from 'react-router-dom'; const DashboardLayout: React.FC = () => ( <> > ); export default DashboardLayout;Step 4: Setup Routing in App.tsx
import React from 'react'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; import PublicLayout from './layouts/PublicLayout'; import DashboardLayout from './layouts/DashboardLayout'; import Home from './pages/Home'; import About from './pages/About'; import Login from './pages/Login'; import DashboardHome from './pages/DashboardHome'; import DashboardUsers from './pages/DashboardUsers'; const App: React.FC = () => { return ( ); }; export default App;{/* Public routes */} }> } /> } /> } /> {/* Dashboard routes */} }> } /> } /> multiple layouts are managed in Routes 5. Routes
Path Layout Page Component / PublicLayout Home.tsx /about PublicLayout About.tsx /login PublicLayout Login.tsx /dashboard DashboardLayout DashboardHome.tsx /dashboard/users DashboardLayout DashboardUsers.tsx
MANVIA BLOG