@hateyyyy

Как работает функция match при серверном рендеринге?

Здравствуйте,не совсем понимаю зачем нужны и как потом работаю некоторые параметры,которые передаются в данную функцию.
match({ routes, location: req.url }, (error, redirectLocation, renderProps) => {});

С данными параметрами все понятно,но так же есть другие:
1) Options - вроде как формирует history,которая потом будет применена(Хотя не совсем понимаю каким образом)
2)history - зачем нужен он,если есть options,который и формирует будущий history или я чего не понимаю?

И вот еще вопрос,как задать на сервере basename,чтобы при заходе на localhost,сразу писалось типа такого localhost/base. Пытался задавать в options,но как то не получилось.
Спасибо
  • Вопрос задан
  • 96 просмотров
Решения вопроса 2
Согласно документации:

match({ routes, location, [history], [...options] }, cb)


Соответственно у вас три варианта:

// автоматически создаст историю
match({ routes, location})

// автоматически создаст историю, при этом передав параметр someOption
// выглядеть это будет примерно так 
// createMemoryHistory(options)
match({ routes, location, someOption })

// вы создаете историю сами (звучит эпично)
match({ routes, location, history })


Что качается basename - то вы его можете как раз и передать как опцию:

match({ routes, location, basename: 'base' })

чтобы при заходе на localhost,сразу писалось типа такого localhost/base


Скорее всего вам понадобится вручную делать редирект с / на /base.
Ответ написан
Комментировать
@hateyyyy Автор вопроса
Залез под капот функции и посмотрел. Сверху написали все правильно.
Я использовал следующий способ.
var history = createMemoryHistory({basename: basename,entries: [req.url]})
match({routes,history},cb)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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