React Router DOM
Install di CLI
npm install --save @types/react-router-dom
npm i @types/react-router-domUbah App.tsx
import { BrowserRouter, Routes, Route } from "react-router-dom"
import Home from "./pages/Home"
import Products from "./pages/Products"
import Cart from "./pages/Cart"
import './App.css'
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/products" element={<Products />} />
<Route path="/cart" element={<Cart />} />
</Routes>
</BrowserRouter>
)
}
export default AppHome.tsx
import { Link } from "react-router-dom"
import { Button } from "@/components/ui/button"
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card"
import React from "react"
export default function Home() {
return (
<div className="flex flex-col items-center justify-center min-h-svh select-none">
<Card className="w-full max-w-[400px]">
<CardHeader>
<CardTitle className="text-3xl text-center">Welcome to Asa Store</CardTitle>
<CardDescription className="text-center">Hehehehehe</CardDescription>
</CardHeader>
<CardContent className="flex justify-center gap-2">
<Link to="/products">
<Button>Products Page</Button>
</Link>
<Link to="/cart">
<Button variant="destructive">Cart Page</Button>
</Link>
</CardContent>
</Card>
</div>
)
}Cart.tsx
import { Link } from "react-router-dom"
import { Button } from "@/components/ui/button"
import {
Card,
CardContent,
CardHeader,
CardTitle,
} from "@/components/ui/card"
export default function Cart() {
return (
<div className="flex flex-col items-center justify-center min-h-svh select-none bg-emerald-600">
<Card className="w-full max-w-[400px]">
<CardHeader>
<CardTitle className="text-3xl text-center">Cart</CardTitle>
</CardHeader>
<CardContent className="flex justify-center gap-2">
<Link to="/">
<Button>Home</Button>
</Link>
<Link to="/products">
<Button>Products</Button>
</Link>
</CardContent>
</Card>
</div>
)
}Products.tsx
import { Link } from "react-router-dom"
import { Button } from "@/components/ui/button"
import {
Card,
CardContent,
CardHeader,
CardTitle,
} from "@/components/ui/card"
export default function Products() {
return (
<div className="flex flex-col items-center justify-center min-h-svh select-none bg-blue-600">
<Card className="w-full max-w-[400px]">
<CardHeader>
<CardTitle className="text-3xl text-center">Products</CardTitle>
</CardHeader>
<CardContent className="flex justify-center gap-2">
<Link to="/">
<Button>Home</Button>
</Link>
<Link to="/cart">
<Button>Cart</Button>
</Link>
</CardContent>
</Card>
</div>
)
}Last updated