@volucris1

Правильно ли осуществлять роутинг в React через if (switch)?

switch (document.location.pathname) {
  case '/': {
    ReactDOM.render(
        <Index />,
        document.getElementById('root'),
    );
    break;
  }
  default: {
    ReactDOM.render(
        <h1>Error</h1>,
        document.getElementById('root'),
    );
  }
}

Стоит ли так делать? Просто vite отказывается работать с react-route-dom
  • Вопрос задан
  • 82 просмотра
Решения вопроса 2
@mexvod
Если я правильно понял то чего вы хотите, то есть сделать страницу обработки если роут не найден, то это делается не так. Используйте готовую библиотеку reactrouter. Для начало определите компонент и маршрут path="*" для страницы 404. Ваше решение находится здесь https://reactrouter.com/web/example/no-match

Забыл упомянуть , а вы пробовали https://github.com/vitejs/vite-plugin-react-pages ?
Ответ написан
Комментировать
w13vitaliy
@w13vitaliy
self-taught developer since 2020
Ответ нет! Так как при каждом пути React будет отрисовывать все заново! И это будет затратно! сделайте лучше в App.js(x)

import React from "react"

function App(props) {
// при изменении путя работает только с путем #
window.onhashchange = () => {
switch (document.location.pathname) {
  case '/': {
    return <Index />
  }
  default: {
        return <h1>Error</h1>
  }
}
}
}

export default App


и в index.js(x)

import App from "path/to/App.js(x)"
 ReactDOM.render(
        <App />
        document.getElementById('root'),
    );


но вообще используйте react-router-dom

Ссылки:
https://developer.mozilla.org/ru/docs/Web/API/Wind...
https://reactrouter.com/web/guides/quick-start
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы