2016-07-29 6 views
2

Мне нужно отобразить html-теги верхнего уровня на стороне клиента (например, <html><head>...</head><body></body></html>). Результат будет введен в iframe. На сервере я использовал бы функцию renderToStaticMarkup от react-dom/server, но только для клиента react-dom не имеет этой функции.Работает ли реакция/сервер на стороне клиента?

Будет ли react-dom/server работать с клиентом в последней версии реакции (в настоящее время 15.3.0)? Если да, есть ли какие-либо указания от команды реагирования разработчиков, что она будет продолжать поддерживаться на клиенте в будущих версиях?

ответ

2

tl; dr: есть.

Я проверял, что он работает в [email protected]. Команда facebook/react фактически оставила ее в составе самой реакции, но только выставила ее как React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED. Если вы хотите, вы можете использовать его как и непосредственно:

var ReactDOMServer = React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; 
console.log(ReactDOMServer.renderToStaticMarkup(<div />)); // => <div></div> 

Конечно, вы, вероятно, уволят, если вы сделаете это ...

К счастью, они также создали на стороне клиента версии реактор/сервер (react-dom-server-15.3.0.min.js). Это не так много для этого сценария. Все, что он делает, это разоблачить React.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED как ReactDOMServer (используя обертку UMD).

Я могу только предположить, что если бы команда реагирования предприняла попытку создать для нее сборку браузера, она намерена продолжить работу на стороне клиента и будет продолжать поддерживаться в будущем.

Смежные вопросы