Я изучаю реакцию. js, но мне трудно понять, как будет работать приложение реагирования при развертывании? - PullRequest
0 голосов
/ 15 января 2020

Я имею в виду, будет ли он обслуживать только файл индекса. html? Но как клиент может запустить этот файл html, поскольку он не является обычным файлом html? и мне нужно иметь внутренний узел для его запуска? На самом деле я не могу понять весь процесс. Обычно клиент запрашивает файл html, а сервер возвращает этот файл html клиенту. Но в случае реагирования, как индекс. html. Возвращает ли сервер индекс. html плюс все компоненты, после чего он обрабатывается браузером или он предварительно отображается с сервера.

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Вам понадобится хост, чтобы включить приложение React. Это может быть просто место, где ваши файлы доступны через HTTP (Amazon S3, Github Pages, учетная запись веб-хостинга и т. Д. c). Затем пользователь переходит на URL-адрес, и этот хост отвечает вашим файлом HTML, который может выглядеть примерно так:

<html>
  <head>
    <title>A title here</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="app.js"></script>
  </body>
</html>

Когда браузер загружает этот файл html, он видит этот скрипт-тег и затем загружает src этого скрипта, делая запрос на app.js на вашем хосте. app.js может выглядеть примерно так:

import React from 'react'
import ReactDOM from 'react-dom'

function App() {
  return <h1>My App</h1>
}

ReactDOM.render(<App/>, document.getElementById('app'))

Затем браузер выполняет этот сценарий, который создает компонент <App/>, и помещает его в узел html с идентификатором app, тем самым отображая Ваше приложение реакции.

Не требуется код приложения на стороне сервера. Каждый получает одинаковые HTML и Javascript, а HTML, предоставляемый хостом, очень прост c, предоставляя пустое место для отображения вашего приложения и ссылку на ваш пользовательский код React. Вот и все.


Я упустил часть для простоты, которая является компиляцией. Вы пишете код javascript выше, но что-то вроде babel или webpack возьмет то, что вы написали, загрузит эти зависимости (React, ReactDOM) и скомпилирует эти JSX-теги (<h1>, <App/>) в то, что браузер сможет понять , Это создает (обычно) один большой javascript файл, который помещается на ваш хост для загрузки браузером. Он включает в себя React, любые другие библиотеки npm, которые вы хотите использовать, и код пользовательского приложения в одном файле.

1 голос
/ 15 января 2020

Когда вы запускаете команду сборки в приложении React, он берет все импортированные файлы (импорт ... из ...) и связывает их (это то, что делает Webpack). Этот индексный файл. html имеет тег сценария, который ссылается на большой файл js (который входит в комплект) со всем кодом: React, ваш компонент, библиотеки в node_modules, ..., все. То, что этот большой файл скрипта загружается в браузер, он обрабатывает всю конструкцию вашего приложения.

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