Реагировать на смешивание компонентов и HTML внутри корневого элемента - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу передать данные на стороне сервера компонентам React без асинхронного вызова.Мне было интересно создать приложение React прямо со своей html-страницы, что-то вроде того, что написано здесь.

Есть ли способ сделать что-то подобное в моем html:

<body>
  <div id="root">
    <h1>Title</h1>
    <ReactComponentA description="Lorem ipsum">
      <div>
        Test
      </div>
      ...(maybe other react components or html here)
    </ReactComponentA>
  </div> 
</body>

Другими словами, я пытаюсь смешать html и реагировать компоненты внутри реагирующего корневого элемента в моем представлении html.

Надеюсь, я был ясен

Большое спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

Компоненты React не являются HTML и не могут использоваться на HTML-странице.Синтаксис JSX является синтаксическим сахаром для React.createComponent(...).Даже если React.createComponent(...) можно использовать в HTML в <script>, в этом нет особого смысла, потому что компоненты React должны отображаться с помощью ReactDOM.render любым способом, чтобы быть полезным, и это происходит внутри приложения React.

Другая проблема заключается в том, что если в приложении React определено ReactComponentA, оно не будет доступно как ReactComponentA в глобальной области действия.

Если приложение гидратируется данными, чтобы избежать асинхронных вызовов AJAXданные могут быть снабжены глобальными символами:

<script>
window.__APP_DATA__ = {/* provided in server-side template */};
</script>

и использоваться внутри приложения как window.__APP_DATA__.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...