Skip to content

Latest commit

ย 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โš›๏ธ Amazing Router React

The official React adapter for Amazing Router. Seamlessly integrates file-system based routing into your React applications, powered by React Router v7 under the hood.

npm version License: MIT

โœจ Why Amazing Router React?

Bring the power of Next.js-style file-system routing to your vanilla React SPA or Vite project.

  • ๐Ÿ“ Zero Config Routing: Your directory structure dictates your routes.
  • โšก React Router v7: Built on top of the industry standard router for React.
  • ๐Ÿงฉ Layouts & Groups: Support for nested layout.tsx, page.tsx, and route groups.
  • ๐Ÿ”Œ Ready to Use: Just drop in the provider and let it handle the rest.

๐Ÿ“ฆ Installation

Install the React adapter alongside the core engine and React Router:

npm install @amazing-router/react @amazing-router/core react-router
# or
yarn add @amazing-router/react @amazing-router/core react-router
# or
pnpm add @amazing-router/react @amazing-router/core react-router

๐Ÿš€ Quick Start

  1. Setup the Core Plugin: Follow the Amazing Router Core instructions to add the plugin to your Vite/Webpack config and initialize your project.

  2. Mount the Provider: In your main entry file (e.g., src/main.tsx or src/index.tsx), replace your root app component with the <AmazingProvider />.

import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import { AmazingProvider } from "@amazing-router/react";
import "./index.css";

createRoot(document.getElementById("root")!).render(
  <StrictMode>
    <AmazingProvider />
  </StrictMode>
);

โš™๏ธ How It Works

The @amazing-router/react adapter automatically reads the route tree generated by @amazing-router/core and dynamically translates it into a native react-router configuration object.

  • page.tsx files are mapped to React Router route elements.
  • layout.tsx files act as layout wrappers utilizing React Router's <Outlet />.
  • Routes are dynamically processed to support lazy-loading and optimal chunking.

๐Ÿช Re-exports

For maximum convenience, @amazing-router/react re-exports everything from react-router. You can import all your routing utilities directly from the adapter:

import { Link, useNavigate, Outlet } from "@amazing-router/react";

export default function CustomLayout() {
  const navigate = useNavigate();
  
  return (
    <div>
      <nav>
        <Link to="/dashboard">Dashboard</Link>
      </nav>
      <main>
        <Outlet />
      </main>
    </div>
  );
}

๐Ÿ“„ License

MIT ยฉ AdelGann

About

๐Ÿ—‚๏ธ A modular, fast, and type-safe React router with a hierarchical tree architecture for complex routing and nested layouts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages