a file based routing system for react router
https://github.com/aquaticcalf/file-system-router.git
npm install file-system-router
// App.jsx
import { BrowserRouter as Router } from 'react-router-dom'
import { FileSystemRouter } from 'file-system-router'
// vite users:
const pages = import.meta.glob('./pages/**/*.jsx', { eager: true })
// webpack users:
// const pages = require.context('./pages', true, /\.jsx$/)
export default function App() {
return (
<Router>
<FileSystemRouter pages={pages} />
</Router>
)
}
pages/
index.jsx -> /
about.jsx -> /about
blog/
index.jsx -> /blog
[id].jsx -> /blog/:id
author/
[author_name]/
name.jsx -> /author/:author_name/name
[param].jsx[param]/example.jsxindex.jsx// pages/blog/[id].jsx
import { useParams } from 'react-router-dom'
export default function BlogPost() {
const { id } = useParams()
return <div>blog post : {id}</div>
}
// pages/author/[author_name]/name.jsx
import { useParams } from 'react-router-dom'
export default function AuthorName() {
const { author_name } = useParams()
return <div>author name : {author_name}</div>
}