Создатель Vue.js Эван Ю взвешивает обсуждение WordPress JavaScript Framework
Опубликовано: 2017-06-06
На прошлой неделе основные участники WordPress сузили свои соображения относительно новой среды JavaScript до React и Vue. Поскольку основная команда имеет больше коллективных знаний о работе с React, они обратились к разработчикам с разным опытом использования других фреймворков в контексте WordPress.
Одной из главных проблем, с которой участники сталкиваются в отношении Vue, является долговечность проекта. Я спросил создателя Vue Эвана Ю, может ли он высказаться по этой теме, чтобы помочь участникам WordPress лучше понять проект, особенно в отношении его усилий по привлечению дополнительных сопровождающих, чтобы помочь разделить нагрузку по поддержке.
«Я думаю, что важно посмотреть на послужной список — Vue существует уже почти 4 года, и вся работа была сделана публично на GitHub, поэтому любой может проверить историю обслуживания», — сказал Ю. «Несмотря на то, что он был в значительной степени разработан мной, текущее обслуживание в большей степени зависит от сообщества. У нас есть активные члены основной команды, которые занимаются сортировкой большинства проблем, и все больший и больший процент проблем решается PR сообщества. Так что да, я уже работал над культивированием дополнительных сопровождающих и буду продолжать это делать».
В настоящее время вы получаете 10 000 долларов США в месяц от регулярных пожертвований Patreon, которые финансируют его постоянную работу над Vue. До этого он также работал в Google и Meteor. Во время его работы в Google в некоторых проектах, над которыми вы работали, использовался Angular, который, по его словам, был слишком тяжелым для его вариантов использования в то время. Он создал Vue.js как более легкую реализацию концепций, которые ему нравились в Angular.
Вы также недавно сказали, что он многому научился у сообщества React, что повлияло на некоторые его технические решения в Vue 2.
Я многому научился у сообщества React — как в коде, так и в людях. Я надеюсь, что все могут быть такими, как @dan_abramov. Мир.
— Эван Ю (@youyuxi) 29 мая 2017 г.
«Во-первых, Vue 2 использует ту же модель рендеринга на основе Virtual DOM, которая впервые была предложена React», — сказал Ю. «Внедрение Virtual DOM позволило Vue раскрыть мощь композиции vdom, сохранив при этом доступность.
«Сообщество React также очень активно, когда исследуются новые проблемные области — например, управление состоянием и управление CSS. Когда я реализовывал официальные решения для Vue, было много конкурирующих решений и много вдохновения».
Эван Ю обращается к неправильным представлениям участников WordPress Core о Vue.js
Вы сказали, что он следил за дискуссиями участников WordPress о React и Vue, но не высказывал мнения о том, что лучше для проекта.
«Мой ответ, очевидно, был бы предвзятым, и, честно говоря, я не на месте основной команды WP, поэтому у меня недостаточно перспективы, чтобы сделать выбор», — сказал Ю. «Однако я могу предоставить отзывы по некоторым обсуждаемым вопросам в надежде помочь им принять более взвешенное решение».
Вы оставили комментарий к последним заметкам о собрании Javascript с пояснениями по некоторым недоразумениям относительно Vue.js. Вы обратились к вопросу о «принятии JavaScript как языка», поскольку некоторые участники считают, что язык шаблонов Vue скрывает лежащий в основе JavaScript.
«Я думаю, что «принятие JavaScript как языка» — это еще один примитив React, которого мы не видим во Vue», — сказал Эндрю Дати во время последней встречи.
Ваш ответ сравнивает использование Vue шаблонов в качестве «синтаксического сахара для представления представления поверх HTML» с тем, что он считает аналогичным использованием в случае JSX в качестве представления представления поверх JavaScript:

Растущее богатство пользовательского интерфейса НЕ требует помещать все в JavaScript. С другой стороны, тот факт, что Vue использует шаблоны по умолчанию, не означает, что он позволяет людям обходиться без надлежащего изучения JavaScript.
Шаблоны Vue под капотом скомпилированы в функции рендеринга JavaScript, и на самом деле они ближе к JavaScript, чем к традиционным строковым шаблонам. Это просто слой синтаксического сахара поверх базового представления Virtual DOM. Думайте о JSX как о синтаксическом сахаре для представления представления поверх JS; Шаблоны Vue — это синтаксический сахар для представления представления поверх HTML.
JSX/Raw JS обеспечивает большую гибкость, когда вам нужно применить прямое манипулирование узлами Virtual DOM, поэтому Vue также поддерживает функции рендеринга. Но это не ставит две противоположные парадигмы под одну гребенку — это просто позволяет пользователю пропустить уровень синтаксического сахара для большего контроля.
Вы сказали, что идея создания шаблонов поверх функций рендеринга заключается в том, чтобы обеспечить «лучшую доступность», и эту озабоченность разделяют многие другие сторонники перехода WordPress на Vue.
«Пользователи, которые более знакомы с HTML и имеют более простые варианты использования, могут использовать шаблон, в то время как пользователи, которые уже знакомы с функциями JSX/рендеринга, могут использовать всю мощь JS», — сказал Ю. «Это очень хорошо подходит для использования ядра WP: пользователям сообщества, которые заботятся о доступности, будет легче начать работу, в то время как основная команда имеет доступ к функциям JSX/рендеринга для расширенных вариантов использования».
Вы также обратились к проблеме долговечности, предоставив дополнительную информацию о процессах разработки Vue. Он подтвердил, что текущая кодовая база в значительной степени разрабатывается им в одиночку, но обслуживание распространяется на основную команду, состоящую из членов по всему миру.
«Другие участники имеют меньшее количество коммитов, потому что все их вклады представлены в виде PR, и мы используем функцию «Squash and commit» на GitHub, поэтому каждый PR приводит только к одному коммиту для участника», — сказал Ю. «Мы объединили около 500 PR только в основном репозитории, и еще больше по всей организации. Другие репозитории в рамках организации vuejs, например vuex, vue-router, vuejs.org, также в значительной степени поддерживаются членами специальной команды».
Вы также предложили разъяснения по вопросам стабильности и совместимости в будущем, поскольку участники WordPress выразили обеспокоенность по поводу критических изменений в языке шаблонов в Vue 2.0.
«Это требует некоторого пояснения: управление версиями Vue строго следует semver», — сказал Ю. «Единственный раз, когда после версии 1.0 произошли критические изменения API, был скачок версии 2.0. Синтаксис шаблона является частью API, поэтому он не [сломается], и в промежутках между обновлениями основных версий мы обязуемся обеспечить 100% обратную совместимость API. Мы очень серьезно относимся к стабильности, как и наше сообщество и рабочие пользователи, включая GitLab, Vice и некоторые из крупнейших интернет-компаний Китая».
Поскольку многие основные участники WordPress в течение многих лет разрабатывали поверх React, вклад You предлагает более подробный и глубокий взгляд на Vue, который участники просили во время различных раундов обратной связи. Обсуждение продолжится в течение следующих нескольких недель, и участники планируют включить эту тему на саммит участников WordCamp Europe.
