В React Router маршруты можно задавать как абсолютные, так и относительные. Понимание различий между ними критически важно для построения сложной навигации в приложениях, особенно при вложенных маршрутах и динамических путях.
Абсолютный путь начинается с символа / и всегда
интерпретируется относительно корня приложения. Пример:
} />
} />
В этом примере, при переходе на /about, React Router
отрендерит компонент About вне зависимости от текущего
расположения пользователя в приложении. Абсолютные пути удобны для
главной навигации и маршрутов, которые не зависят от
контекста текущего компонента.
Особенности:
Относительный путь интерпретируется относительно текущего
маршрута или родительского Route. Он не начинается
с /. Пример использования:
}>
} />
} />
Здесь:
settings относительный.Settings будет
/dashboard/settings.profile аналогично формирует
/dashboard/profile.Преимущества относительных путей:
Link и NavLink с относительными и абсолютными
путямиКомпоненты Link и NavLink поддерживают оба
типа путей. Пример:
О нас // Абсолютный путь
Настройки // Относительный путь внутри родителя
Важная деталь: при использовании относительных путей важно указывать
атрибут relative="path" (по умолчанию
relative="route"), если требуется явная интерпретация
относительно текущего маршрута:
Настройки
React Router позволяет комбинировать относительные пути с динамическими параметрами:
}>
} />
} />
:userId — динамический параметр./users/42/settings компонент
UserSettings получает доступ к параметру
userId через useParams().import { useParams } from 'react-router-dom';
function UserSettings() {
const { userId } = useParams();
return Настройки пользователя {userId};
}
/ при абсолютном пути может превратить его в
относительный, вызывая неожиданные переходы.Относительные и абсолютные пути в React Router создают гибкую и модульную структуру маршрутизации. Грамотное использование обоих типов позволяет строить сложные приложения без дублирования маршрутов, упрощает навигацию и облегчает поддержку кода при изменениях структуры.