7 июня Эван Ю (создатель Vue.js) опубликовал RFC на основе функционального API, основанного на хуках, для Vue.js. Это абсолютно увлекательное чтение, и его стоит прочитать.

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

Единственное, что я скажу, это я бы хотел, чтобы те, кто решил взвесить, были немного более уважительными. Сопровождающие с открытым исходным кодом проделывают огромный объем работы на благо общества, и существуют такие вещи, как RFC, чтобы дать вам возможность взвесить и помочь им выбрать то, что будет наиболее полезно. Они не для того, чтобы вы могли гадить на работу или усилия этих сопровождающих.

Безудержный негатив распространен в нашем сообществе (HN и Reddit покрыты им), и, на мой взгляд, это вредно. Если вы собираетесь сделать очень отрицательный комментарий, остановитесь, подумайте, как вы можете конструктивно сформулировать свой отзыв, и, как гласит старая пословица, «если вы не можете сказать что-то хорошее, не говорите вообще ничего». Это не значит, что вы не соглашаетесь, а просто уважайте тех, с кем разговариваете.

Во всяком случае, вернемся к RFC.

Я думаю, что этот RFC стоит изучить не только ради него самого, но и потому, что он раскрывает три основных идеи о том, как выглядит будущее фронтенд-разработки.

1. Будущее многоразового управления состоянием - это составные функции

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

Однако попытки применить этот подход к управлению государством были неудобными и многословными. Такие инструменты, как компоненты высшего порядка (HOCS), вводят экстремальные уровни сложности вложения, в то время как миксины сложно составлять, могут вызывать конфликты пространств имен и непрозрачны при попытке понять, откуда берутся свойства.

React Hooks представил новый подход, который значительно улучшил композицию логики с отслеживанием состояния с использованием функций, и этот RFC выглядит так, как будто он может пойти еще дальше, поскольку удастся устранить некоторые из наиболее неинтуитивных проблем в хуках (например, чувствительность к порядку вызовов и невозможность использовать их внутри условного).

2. Типы играют все более важную роль в разработке фреймворков.

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

Опрос 2019 года, проведенный npm показал, что колоссальные 62% пользователей npm (что позволяет понять, что это почти все пользователи JavaScript) использовали TypeScript в той или иной форме, при этом 42% из них писали TypeScript напрямую, а остальные использовали библиотеки и написанный код. в TypeScript. Годом ранее этот показатель составлял 48%.

Линии тренда сильны, и типы, кажется, останутся здесь надолго.

3. Рамки развиваются совместно в соответствии с общими направлениями.

Одна из вещей, которые мне нравились в прочтении этого, - это то, что за кулисами видно, как идеи переходят из одной структуры в другую.

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

Есть критика по этому поводу; Частично возражение против этого RFC заключалось в том, что он слишком отличался от того, как Vue традиционно работал. Но, на мой взгляд, перекрестное опыление - это хорошо.

Это также должно помочь снять напряжение при выборе фреймворка. Если вы изучите его достаточно глубоко, чтобы усвоить основные концепции, вы сможете быстро переходить к другим фреймворкам, когда вам нужно. И если вам особенно нравится «вкус» одного из них, вы не останетесь в стороне от каких-либо крупных инноваций, потому что довольно скоро они распространятся.

Подведение итогов

Этот RFC очень воодушевил меня в отношении будущего фронтенд-разработки. Это не только потому, что я люблю Vue.js (хотя я люблю), но и потому, что он показал, как мы, как отрасль, продолжаем совершенствоваться в самосовершенствовании. Инновационные достижения быстро распространяются, совершенствуются и принимаются во всей экосистеме. Будущее действительно очень светлое.

Если вас волнует фронтенд-разработка, возможно, вас заинтересует мой еженедельный информационный бюллетень Friday Frontend. Каждую пятницу я рассылаю 15 ссылок на лучшие статьи, учебные пособия и объявления по CSS / SCSS, JavaScript, а также множество других замечательных новостей Front-end. Зарегистрируйтесь здесь: https://zendev.com/friday-frontend.html

Первоначально опубликовано на https://zendev.com 25 июня 2019 г.