Лучший способ улучшить рендеринг на стороне сервера React, избегая проверок NODE_ENV
Я использую require('babel-register'), чтобы разрешить ES6 в node.js, и выполняю рендеринг моих компонентов реакции на стороне сервера.
В этом выступлении (начало около 7:14) https://youtu.be/PnpfGy7q96U?t=7m14s
Одна из главных рекомендаций по повышению производительности рендеринга на стороне сервера React на 30+% - указать ReactDOMServer на версию сборки на стороне клиента.
например, вместо var ReactDOMServer = require('act-dom/server') используйте var ReactDOMServer = require(' реагировать / dist / реаги.мин ')
Причина повышения скорости заключается в том, что версия на стороне клиента избегает проверок для process.env.NODE_ENV, который оказывается дорогостоящей операцией.
Этот трюк, казалось, отлично работал раньше, но в React 15 код на стороне клиента больше не предоставляет непосредственно методы renderToString и renderToStaticMarkup. Вместо этого оно было скрыто за страшно выглядящим свойством __SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:
Таким образом, вы можете сделать что-то вроде var ReactDOMServer = require('act / dist / реаги.мин ').__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
Но очевидно, что это не очень хорошая идея (вероятно, не будет совместима с будущими версиями React).
Я попытался потребовать ("response /dom-server/dist/ реагировать-dom-server.min"), но это возвращает "неопределенное" (я считаю, что код оболочки предназначен для запуска на клиенте, а не на сервере).
Есть ли еще какие-либо предложения по достижению этой производительности, которые более санкционированы?
Для справки оригинальная проблема задокументирована здесь, но проблемы, похоже, были закрыты: https://github.com/facebook/react/issues/812