Установка и вывод данных
Начало работы с React
Для работы с React сначала надо установить Node.JS, и запустить команду ниже для установки приложения:
npx create-react-app folder-app
После выполнения команды npm start
в браузере станет доступен адресс localhost:3000, в котором загрузится приложение на React.
Для более детального изучения рекомендуется установить Next.JS, которая является готовым веб-приложением на React.
В React используется библиотека Babel, которая позволяет использовать более читабельный код для React-приложений (такой код называется JSX).
Вывод данных
Сначала надо создать HTML-тег, в котором будет загружаться React-приложение.
<!-- Тег, в котором будет выводится приложение --> <div id="react-app"></div>
И в файле index.js вызвать React-приложение через метод render()
.
// index.js import React from 'react'; import ReactDOM from 'react-dom/client'; const root = ReactDOM.createRoot(document.getElementById('react-app')); root.render("Приложение на React"); // В старых версиях (до версии React 18) ReactDOM.render("Приложение на React", document.getElementById('react-app'));
Теперь в теге «#react-app» будет загружаться строка «Приложение на React».
В методе render()
передаётся строка, т.е. прописать HTML не получится (теги будут экранированы). Но можно создать объект, который сгенерирует HTML, для этого будет использоваться JSX.
import React from 'react'; import ReactDOM from 'react-dom/client'; function App() { return( <div className="react-app"> <p>Приложение на React</p> </div> ) } const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <App /> </React.StrictMode> );
В коде выше создаётся компонент App
, которая через метод render()
выводит HTML-код в теге «#react-app».
Компонент App завёрнут в тег <React.StrictMode>
. Он нужен для того, чтобы React сделал дополнительные проверки на ошибки или на устаревший код.
Также стоит обратить внимание, что классы в HTML задаются через атрибут className
.
Компоненты надо называть с заглавной буквы, иначе React будет воспринимать объект как тег. Т.е. <app />
восприниматся как тег <app></app>
, а <App />
уже как компонент.
HTML-код должен быть завёрнут в теге <div>
, иначе будет появляться ошибка «Uncaught SyntaxError: Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?».
Поддержать автора