рендеринг на стороне сервера и рендеринг на стороне клиента ReactJs

Я использую response-router для обработки как рендеринга на стороне сервера, так и рендеринга на стороне клиента в React. Но в качестве точки входа в мое приложение также есть следующий код:

 Router.run(routes, Router.HistoryLocation, function(Handler, state) {
  React.render(<Handler/>, document.body)
   })

рендеринг вызывается дважды. Как справиться с этим сценарием.


person Abhijeet Mishra    schedule 09.10.2015    source источник


Ответы (1)


Вы увидите два рендера, потому что сначала сервер рендерит ваше приложение и отправляет его в браузер; затем React визуализирует ваш код второй раз во внешнем интерфейсе, он переходит в виртуальную DOM, которая не увидит разницы, поэтому она не изменит вашу фактическую DOM. Этот второй рендеринг необходим для того, чтобы ваш код попал в виртуальную DOM, чтобы он был активен во внешнем интерфейсе и был готов к следующему шагу.

person Laurens Kling    schedule 09.10.2015