Что такое React. Первое приложение
React — это библиотека JavaScript, которая используется для создания пользовательского интерфейса. React был создан компанией Facebook, а первый релиз библиотеки увидел свет в марте 2013 года. Текущей версий на данный момент (октябрь 2020 года) является версия React v17.0.
Первоначально React предназначался для веба, для создания веб-сайтов, однако позже появилась платформа React Native, которая уже предназначалась для мобильных устройств.
React представляется идеальный инструмент для создания масштабируемых веб-приложений (в данном случае речь идет о фронтенде), особенно в тех ситуациях, когда приложение представляет SPA (одностраничное приложение).
React относительно прост в освоении, имеет понятный и лаконичный синтаксис.
Как работает React?
Возможно, вы удивитесь, если мы скажем, что HTML-код можно писать на JavaScript (англ). Но именно так работает React.
Создать Dom-узел в React можно через функцию createElement. Например:
React.createElement(«div», { className: «red» }, «Children Text»); React.createElement(MyCounter, { count: 3 + 5 });
Как вы могли заметить, синтаксис в HTML-коде очень похож на XML-компоненты. Однако вместо традиционного класса DOM React использует className.
У тегов JSX есть имя, потомки и атрибуты. Кавычки в атрибутах JSX означают строки. Этот элемент похож на JavaScript.
Кроме того, числовые значения и выражения нужно помещать в фигурные скобки.
Приведённый выше пример хорошо иллюстрирует синтаксис в React, поскольку инструмент использует расширение JSX. По сути, это сочетание HTML и JavaScript.
Вот пример React, написанного с использованием JSX:
Children Text</div>; </mycounter>; var GameScores = {player1: 2,player2: 5};
Scores
Чтобы разобраться, вот несколько примечаний относительно тегов HTML выше:
- имеет атрибут count, который принимает числовое выражение в качестве значения.
- GameScores – это литерал объекта, который имеет две пары значений и свойств.
- – это блок XML, который рендерится на странице.
- Scores = {GameScores}: атрибут Scores получает значение из объекта GameScores, определённого выше.
Большая часть React написана с использованием JSX (JavaScript XML), а не стандартного JavaScript (JS). Здесь важно отметить, что это делается для того, чтобы максимально упростить процесс создания React-компонентов.
Вы можете создать компонент React на стандартном JavaScript, но мы гарантируем, что он будет супер беспорядочным.
Кроме того, идея JSX в React заключалась в том, что Facebook (как первоначальный разработчик) хотел создать один конкретный тип расширения синтаксиса с чёткой и однозначной конфигурацией.
Сила React
Сила React в том, что в нём есть два мира — «Что где стоит» и «Что как работает». И эти миры достаточно хорошо разделены, чтобы не ломаться, если что-то где-то изменилось.
Для сравнения. Если у тебя обычный HTML и тебе нужно поставить ссылку, ты говоришь такое заклинание:
текст ссылки
В этом описании одновременно и «где ссылка», и «как она работает». Если мне нужно 30 таких ссылок на странице, мне нужно будет повторить этот код 30 раз. Каждый раз, когда я использую этот код, я с нуля говорю браузеру: «Так, мы с тобой сейчас будем делать ссылку, давай я тебе расскажу, как она будет работать».
А что если у меня в интерфейсе нужно что-то более сложное, чем ссылка? Какое-нибудь интерактивное поле, и таких полей нужно 15, и они должны общаться между собой? Тогда описывать каждое из них с нуля и как в первый раз — очень громоздко и затратно. А если потом нужно что-то изменить, то проще всё переписать с нуля.
Вот тут и нужен React. Мы отдельно описываем поведение каждого элемента, отдельно расставляем их и связываем.
Установка
Освоить данное руководство можно двумя способами: вы можете либо писать код в своем браузере, либо настроить локальную среду разработки на своем компьютере.
Это самый быстрый способ начать работу!
Сначала откройте этот стартовый код в новой вкладке. Новая вкладка должна отображать пустую игровую доску в крестики-нолики и код React. В этом учебнике мы будем редактировать код React.
Теперь вы можете пропустить второй вариант установки и перейти к разделу « Обзор », чтобы приступить к обзору React.
Это исключительно по желанию и совершенно не обязательно для данного учебника!
Необязательно: инструкции для разработки локально с помощью предпочитаемого вами текстового редактора.
Данная установка потребует больше времени и сил, но позволяет вам освоить учебник, используя предпочитаемый вами редактор (например WebStorm). Выполните следующие шаги:
- Убедитесь, что у вас установлена последняя версия Node.js .
2. Следуйте инструкциям по установке Create React App , чтобы создать новый проект.
Код npx create-react-app my-app.
3. Удалите все файлы в папке src/ нового проекта.
Внимание!
Не удаляйте всю папку src, только файлы c кодом внутри нее. На следующем шаге мы заменим эти файлы примерами, необходимыми для нашего проекта.
Код cd my-app cd src # Если вы используете Mac или Linux: rm -f * # Или, если вы на Windows: del * # Затем переключитесь обратно на папку проекта cd ..
4. Добавьте файл с именем index.css в папку src/ с этим кодом CSS .
5. Добавьте файл с именем index.js в папку src/ с этим кодом JS .
6. Добавьте следующие три строки в начало файла index.js в папке src/:
Код import React from ‘react’; import ReactDOM from ‘react-dom’; import ‘./index.css’;
Теперь, если вы запустите npm start в папке проекта и откроете http://localhost:3000 в браузере, вы должны увидеть пустое поле крестики-нолики.
Также мы рекомендуем следовать данным инструкциям , чтобы настроить подсветку синтаксиса в вашем редакторе.
Если вы застряли, посетите ресурсы сообщества поддержки . В частности, Reactiflux Chat — отличный способ быстро получить помощь. Если же вы не получили ответа или зашли в тупик, пожалуйста, сообщите нам в Git о проблеме, и мы вам поможем.
Зарплаты и вакансии для React-разработчиков
На сайте поиска работы hh.ru по запросу React в начале июля 2020 года есть более 3000 вакансий по России. Эти вакансии можно объединить в три группы.
В первую группу входят объявления о поиске фронтенд-разработчиков. Типичные названия вакансий — «Frontend-разработчик», «JavaScript-developer». В таких объявлениях работодатели указывают умение писать на React в числе требований к кандидатам. Иногда вакансии называются «React-разработчик», но по сути работодатели ищут фронтенд-разработчиков, которые умеют писать на React.
В начале июля 2020 года в объявлениях о поиске JS-разработчиков со знанием React зарплатная вилка составляет от 50 000 до 285 000 рублей в месяц.
Вторая группа — объявления о поиске бэкенд- или фулстэк-разработчиков со знанием React. Например, один из работодателей искал fullstack или backend-разработчика на C#, который сможет решать задачи на фронтенде с помощью TypeScript, React и Redux. Ещё один пример — объявление о поиске Java-программиста, который работал с React или захочет разобраться в этой библиотеке.
То есть работодатели приветствуют знание React у кандидатов на вакансии, которые прямо не связаны с фронтенд-разработкой. Обычно в таких случаях компании ищут опытных программистов, поэтому предлагают зарплаты от 150 000 рублей в месяц.
Третья группа — объявления о поиске программистов со знанием React Native. С помощью таких объявлений работодатели ищут разработчиков мобильных приложений.
Вилка зарплат для разработчиков со знанием React Native составляет от 30 000 до 250 000 рублей в месяц. По состоянию на начало июля 2020 года открыто несколько оплачиваемых стажировок, минимальная зарплата стажёра составляет 15 000 рублей в месяц.
Промежуточный итог: умение работать с React — хорошее преимущество при поиске работы как для фронтендеров, так и для специалистов по бэкенду. А знание React Native позволит кандидатам претендовать на позиции разработчиков мобильных приложений.
По состоянию на конец июля 2020 года на hh.ru есть более 3000 вакансий для программистов со знанием React. Для сравнения, работодатели открыли только 1400 вакансий для программистов со знанием Vue.js и 1600 вакансий для программистов со знанием Angular.
Мнение экспертов о развитии и перспективах библиотеки
Специально для этой статьи опытные разработчики поделились мыслями о перспективах React, целесообразности изучения этой библиотеки и инструментах для управления состоянием и альтернативных библиотеках и фреймворках. Эксперты ответили на такие вопросы:
- По данным LogRocket, доля React на рынке UI-фреймворков и библиотек составляет около 60%. Как вы считаете, в обозримом будущем эта ситуация может существенно измениться?
- Провокационный вопрос: фреймворк или библиотека, который обойдёт React в будущем, уже существует или он только должен появиться?
- Какие новые возможности React лично вы ждёте больше всего? Когда они могут появиться?
- Для управления состоянием в более или менее сложных React-приложениях чаще всего используется Redux. Появятся ли альтернативы Redux, которые станут популярными и общепринятыми способами управления состоянием?
- Вопрос, ответ на который заинтересует новичков: стоит ли изучать React, чтобы устроиться на работу фронтенд-разработчиком в 2020 или 2021 году?
- https://metanit.com/web/react/1.1.php
- https://www.hostinger.ru/rukovodstva/chto-takoe-react
- https://thecode.media/react/
- https://learn-reactjs.ru/tutorial
- https://ru.hexlet.io/blog/posts/biblioteka-react-review-article