Для навигации между файлами в React.js вы можете использовать различные методы в зависимости от конкретного сценария и требований вашего приложения. Вот некоторые часто используемые подходы:
- React Router: React Router — популярная библиотека для управления маршрутизацией в приложениях React.js. Он позволяет определять маршруты, сопоставлять их с конкретными компонентами и перемещаться между ними, используя декларативный синтаксис. React Router предоставляет такие функции, как вложенные маршруты, параметры маршрута и параметры запроса.
Пример использования:
import { BrowserRouter as Router, Route, Link } from 'react-router-dom';
function App() {
return (
<Router>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/about">About</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
</nav>
<Route exact path="/" component={Home} />
<Route path="/about" component={About} />
<Route path="/contact" component={Contact} />
</Router>
);
}
- Условный рендеринг. Вместо использования специальной библиотеки маршрутизации вы можете условно отображать различные компоненты на основе текущего состояния или URL-адреса. Вы можете сохранить переменную состояния, которая будет представлять текущую «страницу» или «представление», и обновлять ее, чтобы инициировать отрисовку нужного компонента.
Пример использования:
function App() {
const [page, setPage] = useState('home');
const renderContent = () => {
switch (page) {
case 'home':
return <Home />;
case 'about':
return <About />;
case 'contact':
return <Contact />;
default:
return <NotFound />;
}
};
return (
<div>
<nav>
<ul>
<li>
<button onClick={() => setPage('home')}>Home</button>
</li>
<li>
<button onClick={() => setPage('about')}>About</button>
</li>
<li>
<button onClick={() => setPage('contact')}>Contact</button>
</li>
</ul>
</nav>
{renderContent()}
</div>
);
}
- Условный импорт компонентов. Другой подход заключается в условном импорте различных компонентов на основе текущего URL-адреса или состояния. Вы можете использовать методы динамического импорта или разделения кода для загрузки необходимого компонента по требованию.
Пример использования:
import React, { lazy, Suspense } from 'react';
const Home = lazy(() => import('./components/Home'));
const About = lazy(() => import('./components/About'));
const Contact = lazy(() => import('./components/Contact'));
function App() {
const [page, setPage] = useState('home');
const renderContent = () => {
switch (page) {
case 'home':
return <Home />;
case 'about':
return <About />;
case 'contact':
return <Contact />;
default:
return <NotFound />;
}
};
return (
<div>
<nav>
<ul>
<li>
<button onClick={() => setPage('home')}>Home</button>
</li>
<li>
<button onClick={() => setPage('about')}>About</button>
</li>
<li>
<button onClick={() => setPage('contact')}>Contact</button>
</li>
</ul>
</nav>
<Suspense fallback={<div>Loading...</div>}>
{renderContent()}
</Suspense>
</div>
);
}
Это всего лишь несколько примеров навигации между файлами в приложении React.js. Выбор метода зависит от сложности, масштаба и конкретных требований вашего проекта.