Skip to content

Instantly share code, notes, and snippets.

@ArtyomResh
Last active April 28, 2022 10:46
Show Gist options
  • Save ArtyomResh/e53be16dca8256435aa3c3e0b547d9e9 to your computer and use it in GitHub Desktop.
Save ArtyomResh/e53be16dca8256435aa3c3e0b547d9e9 to your computer and use it in GitHub Desktop.
История развития React

История развития React

Как я уже говорил, React — это JavaScript библиотека, предназначенная для создания пользовательских интерфейсов. В следующих уроках мы попробуем разобраться, что в ней есть, как она устроена, почему это библиотека, а ней фреймфорк и в чём её отличия от других фреймворков, а пока я постараюсь ответить на вопрос когда и как она появилась, ведь что бы понять всю суть и красоту React нужно окунуться в тот контекст, в котором была создана эта библиотека, поэтому давайте совершим небольшое путешествие в прошлое и посмотрим как кодили раньше.

/Тут шуточка, про технологи того времени или кадр из любого фильма про путешествия во времени/

История React'а началась очень давно. В 2010 году практически все проекты имели в своём стеке такой язык программирования как PHP и тогда же появились первые зачатки самой популярной фронтенд–библиотеки: в своём посту от 10 февраля 2010 года facebook презентовала XHP — своеобразный синтаксический сахар для PHP, который позволял ему понимать HTML разметку. Помимо увилечения безопасности приложений, это позволило создавать сложные, составные компоненты, с которыми было легко работать, так как для их написания требовалось меньше кода, они могли наследоваться друг от друга и их было легче читать. Очень похоже на JSX, не находите?

Позже в 2011 году Джордан Волк (Jordan Walk), вдохновленный результатми XHP, создаёт проотца React — FaxJs.

Однако, FaxJs так и остался просто эксперементальным проектом и в 2012 году Джордан уже работал над прототипом React'a. Стоит отметить, что идея создания, того, что в последствии будет называться React'ом, возникла тогда, когда команда Facebook Ads столкнулся с серьезными проблемами связанными как, и с написанием и пониманием кода на проектах, так и с управлением состоянием приложения. В те времена было популярно управлять состоянием приложения благодаря мутациям /тут можно вставить ссылку на урок, где мы будем рассказывать об мутабельности и иммутабельности/, в результате, с ростом проекта, становилось все сложнее понимать, какое действите или событие и в какой момени вызывало те или иные изменения в приложении. Поведение приложения становилось непредсказуемым. Так же, любое изменение на странице, даже незначительное зачастую провоцировало ререндеринг всего приложения. Тогда и возникла идея создать такой инструмент, который будет использовать преимущества иммутабельного подхода к управлению данными и позволит писать код в декларативном стиле /тут можно вставить ссылку на урок, где мы будем рассказывать о декларативности и императивности.

И уже в 2013 году Джордан представил обществу React и объявил о том что он будет open-source проектом. Забавно, но поначалу пуплика относила к React'у c недоверием, и некоторые считали что это бошьшой шаг назад. Но благодаря поддержки Facebook, Netflix, Airbnb, релизу React Native, а так же простоте освоения и постоянному совершенствованию React быстро завоевал доверие публики и в 2016 стал самым популярной фронтенд-библиотекой.

Сейчас React не останавливается в своём развитии и продолжает работать над улучшением производительности, опыта взаимодействия программистов с библиотекой и по сей день остается самой популряной фронтенд-библиотекой и одним из лучших вариантов для кроссплатформенных проектов.

@Imater
Copy link

Imater commented Jun 26, 2018

Тут бы всё же сказать пару слов, какую часть MVP реакт реализует и как это делает. Лишь намекнуть и напомнить в одном абзаце. Т.е. подчеркнуть, что Реакт это лишь View часть MVP и поэтому он очень гибкий и позволяет создавать разнообразные приложения и не только для браузера.

@DaniilTimonov
Copy link

20220428_134540
Добрый день. У Вас в статье в слове грамматическая ошибка. Видимо правильнее будет Увеличения

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment