Синхронный ajax запрос — react?
сначала сделать запрос <...> после чего отрисовать страницу
Нет, это делается не так. Страница отрисовывается сразу. Пока данных нет - демонстрируется индикатор загрузки; после выполнения запроса индикатор скрывается, данные показываются (см. условный рендеринг). Например.
fetch('./api/some.json').then( function(resp){drawResp(resp)})
function drawResp(resp){
   БраузерНарисуйМнеКрасиво()
}