From c43dfa409216fbd96c51b467ad17f3b35479c2e7 Mon Sep 17 00:00:00 2001 From: Laktionov Anton Date: Tue, 9 Jun 2026 20:06:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B5=D1=81=D0=BA=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=20=D1=81=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=BE=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 60 ++++++++++++++++++++++++++++++++++++++- package.json | 5 ++-- src/App.jsx | 27 ++++++++++++++---- src/pages/AboutPage.jsx | 9 ++++++ src/pages/AdminPanel.jsx | 9 ++++++ src/pages/ContactPage.jsx | 9 ++++++ src/pages/HomePage.jsx | 9 ++++++ 7 files changed, 120 insertions(+), 8 deletions(-) create mode 100644 src/pages/AboutPage.jsx create mode 100644 src/pages/AdminPanel.jsx create mode 100644 src/pages/ContactPage.jsx create mode 100644 src/pages/HomePage.jsx diff --git a/package-lock.json b/package-lock.json index b4904ee..67dca8b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "0.0.0", "dependencies": { "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "react-router-dom": "^7.17.0" }, "devDependencies": { "@eslint/js": "^9.25.0", @@ -1600,6 +1601,19 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.1.1.tgz", + "integrity": "sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2471,6 +2485,44 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.17.0.tgz", + "integrity": "sha512-FDELK7rTMlCHO5+reyXsPlmfr7N1F91lPHsWYfMEGQm/KQ+F4JFM8jGoeQDmDvdTs93Fw9aSilH+uKRb4/jXvQ==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.17.0.tgz", + "integrity": "sha512-fyU2yjGups/hE6Xz0I5ZYbVL8Gx29eCjgpHaRaTaVU+OOAdfRX05KsvyRm0GO8YQwOkhpU3MurW1jyMUJn+zSw==", + "license": "MIT", + "dependencies": { + "react-router": "7.17.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2544,6 +2596,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index 151176e..f486dc7 100644 --- a/package.json +++ b/package.json @@ -4,14 +4,15 @@ "version": "0.0.0", "type": "module", "scripts": { - "dev": "vite", + "dev": "vite", "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "react": "^19.1.0", - "react-dom": "^19.1.0" + "react-dom": "^19.1.0", + "react-router-dom": "^7.17.0" }, "devDependencies": { "@eslint/js": "^9.25.0", diff --git a/src/App.jsx b/src/App.jsx index 6bf3ac6..4a49b44 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,11 +1,28 @@ -// удаляем все, оставляя лишь пустую функцию App ниже +import { Suspense, lazy } from 'react' +import { BrowserRouter, Routes, Route } from 'react-router-dom' + +const HomePage = lazy(() => import('./pages/HomePage')) +const AboutPage = lazy(() => import('./pages/AboutPage')) +const ContactPage = lazy(() => import('./pages/ContactPage')) +const AdminPanel = lazy(() => import('./pages/AdminPanel')) function App() { return ( - <> - {/* Добавьте тестовый контент для проверки */} -

Hello, React!

- + +
+ +
+ Загрузка ...
}> + + } /> + } /> + } /> + } /> + + + + +
) } diff --git a/src/pages/AboutPage.jsx b/src/pages/AboutPage.jsx new file mode 100644 index 0000000..204a8ac --- /dev/null +++ b/src/pages/AboutPage.jsx @@ -0,0 +1,9 @@ +export function MyComponent() { + return ( + <> +

About Page

+ + ) +} + +export default MyComponent \ No newline at end of file diff --git a/src/pages/AdminPanel.jsx b/src/pages/AdminPanel.jsx new file mode 100644 index 0000000..ea09bdf --- /dev/null +++ b/src/pages/AdminPanel.jsx @@ -0,0 +1,9 @@ +export function MyComponent() { + return ( + <> +

Admin Page

+ + ) +} + +export default MyComponent \ No newline at end of file diff --git a/src/pages/ContactPage.jsx b/src/pages/ContactPage.jsx new file mode 100644 index 0000000..c8fac6d --- /dev/null +++ b/src/pages/ContactPage.jsx @@ -0,0 +1,9 @@ +export function MyComponent() { + return ( + <> +

Contact Page

+ + ) +} + +export default MyComponent \ No newline at end of file diff --git a/src/pages/HomePage.jsx b/src/pages/HomePage.jsx new file mode 100644 index 0000000..fc75688 --- /dev/null +++ b/src/pages/HomePage.jsx @@ -0,0 +1,9 @@ +export function MyComponent() { + return ( + <> +

Home Page

+ + ) +} + +export default MyComponent \ No newline at end of file