ReactJS - это библиотека с открытым исходным кодом, созданная и поддерживаемая facebook. Сейчас у него более 60 000 звезд на Github, и окружающее сообщество становится все больше и больше. Многие хорошо зарекомендовавшие себя компании или быстро развивающиеся стартапы решили использовать его, чтобы обеспечить отзывчивый и современный пользовательский интерфейс, воспользовавшись его мощными функциями.

Итак, давайте посмотрим, почему ReactJS стал таким популярным за последние 2 года:

1. ReactJS - это уровень представления в наших приложениях, и он отлично справляется с этой задачей, не пытаясь достичь чего-либо большего.

2. В конце концов, это JavaScript. При написании кода на ReactJS нам не нужно делать столько реагирующих вещей или постоянно расширять пользовательские объекты и часами погружаться в документацию, потому что мы не помним тот или иной метод. Звучит знакомо, правда? Это определенно не относится к ReactJS. Мы можем использовать новейшие возможности JavaScript, транслируя наш код с помощью инструментов, которые мы предпочитаем, таких как webpack, browserify, rollup, babel и т. Д.

3. Кривая обучения не такая уж жесткая. Большинство разработчиков могут создать небольшой прототип в течение нескольких часов при первых же попытках его использования. Это огромное преимущество, поскольку разработчики не чувствуют себя перегруженными, а компании определенно могут не тратить целое состояние на обучение своих сотрудников.

4. Это довольно непредубежденный вариант, поэтому мы можем свободно выбирать инструменты и технологии, которые мы предпочитаем использовать с ним. Мы все еще можем начать с ES5 или сразу перейти к синтаксису ES6. Мы можем использовать TypeScript или Flow, чтобы добавить проверку типов в нашу кодовую базу, или мы можем просто избежать этого. Мы можем использовать любой инструмент, который нам нравится, для реализации асинхронных запросов, таких как выборка, аксиомы, суперагенты и т. Д. Мы можем использовать экспериментальные функции с babel, такие как синтаксис инициализатора свойств, преобразование покоя / распространения объекта и многое другое. Слишком много свободы, правда?

5. Все это помогает разработчикам ReactJS быстрее становиться более знакомыми и удобными с самим JavaScript и всеми новыми функциями, которые он предлагает. В настоящее время JavaScript быстро развивается, поэтому это чрезвычайно полезно для каждого инженера индивидуально. Становясь все лучше и лучше как разработчик ReactJS, вы действительно становитесь сильнее и с самим JavaScript. Я уверен, что некоторые из вас потратили кучу часов в прошлом на изучение JS-фреймворка / библиотеки, а теперь, когда он исчез, вам грустно из-за всех этих часов, которые вы посвятили его освоению, верно? Здесь определенно не так.

6. ReactJS действительно хорошо работает с самыми известными библиотеками управления состоянием, такими как Redux, Flux и MobX. И снова разработчики могут свободно выбирать правильный инструмент для правильной работы и создавать сверхчувствительный пользовательский интерфейс, который может очень хорошо масштабироваться без написания больших объемов спагетти-кода.

7. ReactJS предлагает собственный механизм проверки типов через PropTypes. Используя их, мы можем вовремя выявлять множество ошибок. Многие разработчики используют расширения JavaScript, такие как Typescript или Flow, для проверки типов всего приложения, но если мы не хотим добавлять дополнительную сложность в нашу кодовую базу, PropTypes вполне справятся с этой задачей.

8. Компоненты легко проходят модульное тестирование, поэтому по определению мы предоставляем хорошо структурированный, более безопасный и надежный код. Это так важно для профессионального проекта !!! Модульное тестирование - не болезненный процесс для ReactJS, поскольку есть такие инструменты, как Jest & Enzyme, которые упрощают TDD. Enzyme дает нам возможность тестировать наши компоненты как единицы с помощью API поверхностного рендеринга или даже в состоянии полного рендеринга, в то время как Jest представил тестирование моментальных снимков для компонентов ReactJS.

9. Несмотря на то, что он не построен на основе технологий веб-компонентов, таких как HTML-импорт, HTML-шаблоны, теневой DOM и т. Д., Он максимально приближает нас к концепции веб-компонентов по сравнению с любой другой библиотекой / фреймворком.

В ReactJS мы можем создавать небольшие, абстрактные и повторно используемые фрагменты кода с определенной разметкой, логикой и стилем. Поначалу синтаксис JSX может показаться неудобным, но он помогает нам интегрировать HTML-код в наши компоненты. Для стилизации с заданной областью нам нужно применить шаблон модулей CSS и использовать современный сборщик, такой как webpack или browserify.

Довольно распространено создание библиотеки пользовательских компонентов в проекте ReactJS и их повторное использование по желанию во всем мире. Это значительно ускоряет разработку и отладку.

10. Благодаря ReactJS сотрудничество в командах стало еще лучше. Вся эта модульная система, которая применяется, помогает разработчикам легче разделять задачи и избегать дублирования и побочных эффектов. Даже веб-дизайнеры со средними навыками программирования на JavaScript могут создавать небольшие компоненты, применять определенные стили, а затем делиться ими с остальной командой для дальнейшей разработки.

11. Рендеринг на стороне сервера путем объединения сервера NodeJS и ReactJS помогает нам создавать еще более сложные приложения путем предварительного рендеринга начального состояния наших компонентов ReactJS. Благодаря SSR мы можем решать общие проблемы одностраничных приложений, такие как проблемное индексирование поисковыми роботами, более быстрая начальная загрузка и т. Д. Мы по-прежнему можем продолжать использовать инструменты твердотельного управления, такие как Redux, как мы обсуждали выше, и обеспечивать отличное взаимодействие с пользователем.

12. Функциональное программирование приобрело большую популярность в последние годы, и ReactJS благодаря своим чисто функциональным представлениям является лучшим представителем во внешнем мире. В функциональном программировании «чистая функция» - это функция, которая ничего не меняет за пределами своей области видимости и всегда возвращает один и тот же вывод, если тот же ввод дан без каких-либо побочных эффектов. Функциональный подход помогает разработчику разложить программу на небольшие функции, которые затем объединяются в приложение. Компоненты ReactJS без сохранения состояния действуют как чистые функции, в то время как композиция строго соблюдается вместо наследования для повторного использования кода между компонентами.