Nano Hash - криптовалюты, майнинг, программирование

React-route 1.0 эквивалент Router.create 0.13

Я унаследовал проект, использующий React-Router, и поднимаю все зависимости, включая react-router. Однако его API немного изменился между версиями 0.13 и 1.0, и мне было интересно, как следующий код можно преобразовать в форму 1.0:

var routes = (
  <Route handler={...}>
    <Route name="..." path="/.../"
       handler={require('../pages/...jsx')}/>
    ...
  </Route>
);

[...snip...]

exports.generateStatic = function(url, cb) {
  var router = Router.create({
    routes: routes,
    location: url
  });

  router.run(function(Handler) {
    var pageHandler, html, title;
    var err = null;
    try {
      html = ReactDOMServer.renderToString(<Handler/>);
      pageHandler = Page.handlerForPage(router, url);
      title = Page.titleForHandler(pageHandler);
    } catch (e) {
      err = e;
    }
    cb(err, html, { title: title });
  });
};

Вместо того, чтобы выполнять «настоящую навигацию», этот код используется для создания приложения в виде статического HTML путем явного отображения всех маршрутов в нем, и единственные вопросы, которые я вижу в StackOverflow, касаются того, как использовать то, что Router.create было предназначено для навигации (Router.create в react-router v1.0.0), который не особо актуально в данном случае.

19.12.2015

Ответы:


1

Теперь API немного изменился — взгляните на документацию по рендерингу сервера для текущей версии: https://github.com/rackt/react-router/blob/v1.0.2/docs/guides/advanced/ServerRendering.md.

19.12.2015
  • Хм, эта документация по-прежнему зависит от наличия сервера, чего здесь нет: это инструмент сборки без сервера, который генерирует все страницы, охватываемые приложением, и записывает их на диск как статический контент, который можно загрузить прямо из файла с помощью сервера passove cli, public_html хостинга и т. д. 19.12.2015
  • Хотя это то же самое, нет? Вы по-прежнему просто генерируете контент в Node — вы не отправляете его в ответ, но в остальном все то же самое. 19.12.2015
  • Я пропустил, что match является частью реактивного маршрутизатора. Да, ты прав. Пришло время начать переписывать существующий код, чтобы вместо этого использовать этот подход. Спасибо. 19.12.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..