tanstack router

This commit is contained in:
Robert 2024-03-04 21:04:59 +07:00
parent 9619b49078
commit cde6124c09
No known key found for this signature in database
GPG Key ID: F631C7FD957D5F22
10 changed files with 91 additions and 10 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -10,6 +10,8 @@
"preview": "vite preview"
},
"dependencies": {
"@tanstack/react-router": "^1.18.3",
"@tanstack/router-vite-plugin": "^1.18.1",
"autoprefixer": "^10.4.18",
"postcss": "^8.4.35",
"react": "^18.2.0",
@ -17,6 +19,7 @@
"tailwindcss": "^3.4.1"
},
"devDependencies": {
"@types/node": "^20.11.24",
"@types/react": "^18.2.56",
"@types/react-dom": "^18.2.19",
"@typescript-eslint/eslint-plugin": "^7.0.2",

View File

@ -1,3 +0,0 @@
export default function App() {
return <div className="mx-auto text-red-400">hi</div>;
}

14
src/app/App.tsx Normal file
View File

@ -0,0 +1,14 @@
import { routeTree } from "@/routeTree.gen";
import { RouterProvider, createRouter } from "@tanstack/react-router";
const router = createRouter({ routeTree });
declare module "@tanstack/react-router" {
interface Register {
router: typeof router;
}
}
export default function App() {
return <RouterProvider router={router} />;
}

View File

@ -1,5 +1,5 @@
import "./index.css";
import App from "./App.tsx";
import App from "./app/App.tsx";
import React from "react";
import ReactDOM from "react-dom/client";
@ -7,5 +7,5 @@ import ReactDOM from "react-dom/client";
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<App />
</React.StrictMode>
</React.StrictMode>,
);

38
src/routeTree.gen.ts Normal file
View File

@ -0,0 +1,38 @@
/* prettier-ignore-start */
/* eslint-disable */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// This file is auto-generated by TanStack Router
// Import Routes
import { Route as rootRoute } from './routes/__root'
import { Route as IndexImport } from './routes/index'
// Create/Update Routes
const IndexRoute = IndexImport.update({
path: '/',
getParentRoute: () => rootRoute,
} as any)
// Populate the FileRoutesByPath interface
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
'/': {
preLoaderRoute: typeof IndexImport
parentRoute: typeof rootRoute
}
}
}
// Create and export the route tree
export const routeTree = rootRoute.addChildren([IndexRoute])
/* prettier-ignore-end */

9
src/routes/__root.tsx Normal file
View File

@ -0,0 +1,9 @@
import { createRootRoute, Outlet } from "@tanstack/react-router";
export const Route = createRootRoute({
component: () => (
<>
<Outlet />
</>
),
});

9
src/routes/index.tsx Normal file
View File

@ -0,0 +1,9 @@
import { createFileRoute } from "@tanstack/react-router";
function IndexPage() {
return <div>hi</div>;
}
export const Route = createFileRoute("/")({
component: IndexPage,
});

View File

@ -18,7 +18,11 @@
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
"noFallthroughCasesInSwitch": true,
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]

View File

@ -1,7 +1,14 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
import path from "path";
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
import { TanStackRouterVite } from "@tanstack/router-vite-plugin";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [react()],
})
plugins: [react(), TanStackRouterVite()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
});