Как реализовать 404 страницу в React

На список статей
Blog image

Track My Time — Управляй временем эффективно и достигай большего!
"Ваш незаменимый помощник в управлении проектами и учете времени! Отслеживайте задачи, распределяйте ресурсы и контролируйте каждую минуту работы. Повышайте эффективность, упрощайте процессы и достигайте результатов быстрее. Начните работать с нами и добейтесь успеха вместе!"

Зачем нужна 404 страница и как она работает

404 страница появляется, когда пользователь пытается перейти на несуществующий маршрут. Вместо стандартного "Page not found", который может выглядеть скучно, вы можете сделать страницу, которая объяснит проблему и предложит решение, например, ссылку на главную страницу.

В React маршруты определяются с помощью react-router-dom. Этот пакет управляет переходами между страницами и помогает обработать случаи, когда пользователь попадает на неправильный маршрут. Чтобы создать 404 страницу, вам нужно добавить маршрут, который отобразится, если другие маршруты не подходят.

Пример настройки маршрутов с 404 страницей:

import React from "react";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";

function Home() {
 return <h1>Home Page</h1>;
}

function About() {
 return <h1>About Page</h1>;
}

function NotFound() {
 return <h1>404 - Page Not Found</h1>;
}

export default function App() {
 return (
   <Router>
     <Routes>
       <Route path="/" element={<Home />} />
       <Route path="/about" element={<About />} />
       <Route path="*" element={<NotFound />} />
     </Routes>
   </Router>
 );
}

1. Основные страницы, такие как главная или страница "О нас", получают свои маршруты с определёнными путями (/ или /about).
2. 404 страница назначается маршруту *, который срабатывает, если ни один другой маршрут не подходит.

Улучшение пользовательского опыта на 404 странице

Простое сообщение "Страница не найдена" не всегда помогает пользователю. Подумайте о добавлении полезных функций:

1. Ссылка на главную страницу, чтобы пользователь мог начать с нового поиска.

2. Кнопка "Назад", чтобы вернуться на предыдущую страницу.

3. Весёлый дизайн или иллюстрация, чтобы 404 страница выглядела менее пугающей.

Пример с улучшенным дизайном 404 страницы:

import React from "react";
import { useNavigate } from "react-router-dom";

function NotFound() {
 const navigate = useNavigate();

 return (
   <div style={{ textAlign: "center", marginTop: "50px" }}>
     <h1>Oops! 404 - Page Not Found</h1>
     <p>We couldn't find the page you were looking for.</p>
     <button onClick={() => navigate("/")}>Go to Home</button>
     <button onClick={() => navigate(-1)}>Go Back</button>
   </div>
 );
}

export default NotFound;

1. Использование useNavigate из react-router-dom позволяет динамически управлять переходами, как, например, возвращение на предыдущую страницу.
2. Добавление стилей через style или CSS делает страницу более привлекательной.

Советы по улучшению SEO и функциональности

404 страница не должна быть "тупиком" для поисковых систем и пользователей. Вот что можно сделать, чтобы сделать её полезной:

1. Добавьте поиск по сайту. Если пользователь не нашёл нужное, дайте ему возможность искать информацию прямо на 404 странице.

2. Используйте понятный заголовок. Поисковые системы распознают 404 страницы по заголовкам и статусу ответа сервера, поэтому убедитесь, что страница отдаёт правильный код ошибки.

Пример работы с заголовком страницы и кодом статуса:

import React, { useEffect } from "react";

function NotFound() {
 useEffect(() => {
   document.title = "404 - Page Not Found";
 }, []);

 return (
   <div style={{ textAlign: "center", marginTop: "50px" }}>
     <h1>404 - Page Not Found</h1>
     <p>The page you are looking for doesn't exist.</p>
   </div>
 );
}

export default NotFound;

1. Использование useEffect для обновления заголовка страницы делает её понятной как для пользователей, так и для поисковых систем.
2. Не забудьте настроить сервер для возвращения правильного статуса 404, если вы работаете с SSR (Server-Side Rendering).

Комментарии

Пока нет комментариев

Добавить комментарий