Автор оригинала: Anthony Gore.
В 2016 году отреагировали в цементированном положении как король веб-каркасов JavaScript. В этом году увидели быстрый рост как его веб, так и нативных мобильных библиотек, и комфортно проводят по главному сопернику угловой.
Но 2016 год был одинаково впечатляющим годом для Vue. Выпуск своей версии 2 сделал огромное впечатление на сообществе JavaScript, заверенное на 25 000 Extra Hithub Stars, которые он получил в этом году.
Объем обоих реакций, так и VUE несомненно, аналогична: оба являются легкими библиотеками на основе компонентов для построения пользовательских интерфейсов, которые сосредоточены только на уровне просмотра. Оба могут использоваться в простом проекте, либо масштабироваться до сложного приложения, используя режущую инструмент.
В результате многие веб-разработчиков задаются вопросом, что они должны использовать. Это четко превосходит над другим? У них есть конкретные плюсы и минусы, чтобы быть в курсе? Или они в основном то же самое?
Примечание: эта статья была первоначально опубликована здесь на блоге разработчиков Vue.js на 2016/12/26.
Два рамки, два адвоката.
В этой статье я хочу ответить на эти вопросы с тщательным и справедливым сравнением. Единственная проблема заключается в том, что я неназванный Vue Fan-мальчик и полностью предвзятый. Я использовал Vue сильно в моих проектах и даже выпустил онлайн-курс, Ultimate Vue.js Разработчики курс Отказ
Чтобы даже из моего предвзятого положения я купил в своем друге Алексис Мангин, который является оба отличным разработчиком JavaScript, так и большим реагированным вентилятором. Он также погружен в реакцию, используя его часто как в Интернете, так и в мобильных проектах.
Алексис спросил меня однажды: «Почему ты так в Vue, а не реагировать?» Поскольку я не знал, что реагировал так хорошо, я не мог дать хороший ответ. Поэтому я поставил ему идею, что мы садимся однажды с нашими ноутбуками и покажи друг другу, что наша выбранная библиотека должна предложить.
Энтони (слева) и Алексис (справа), сравнивая реагирование и Vue в кафе быка и медведя в Чиангмай, Таиланд
После большого обсуждения и обучения с обеих сторон следующие шесть очков являются нашими ключами.
Если вам нравятся создание приложений с шаблонами (или хотите, чтобы вариант), иди с Vue.
Помещая разметку в файл HTML – это опция по умолчанию для приложения Vue. Подобно углому, скобами усов используются для выражений связывания данных, в то время как директивы (специальные атрибуты HTML) используются для добавления функциональности на шаблон. Следуйте демонстрируют простое приложение Vue. Он печатает сообщение и имеет кнопку, которая динамически меняет сообщение:
{{ message }}
new Vue({ el: '#app', data: { message: 'Hello Vue.js! }, methods: { reverseMessage: function () { this.message = this.message.split('').reverse().join(''); } } });
Напротив, React Apps Shun шаблоны и требуют, чтобы разработчик создал свой DOM в JavaScript, как правило, помогает с JSX. Ниже приведено одно и то же простое приложение, реализованное с реакцией:
class App extends React.Component { constructor(props) { super(props); this.state = { message: 'Hello React.js!' }; } reverseMessage() { this.setState({ message: this.state.message.split('').reverse().join('') }); } render() { return () } } ReactDOM.render(App, document.getElementById('app'));{this.state.message}
Шаблоны легче понять для более новых разработчиков, которые пришли из стандартной парадигмы веб-разработки. Но даже некоторые опытные разработчики предпочитают их как шаблоны, могут лучше отделиться от функциональности и дать возможность использования предварительно процессоров, таких как мопс.
Но шаблоны приходят за счет необходимости изучать все расширенный синтаксис HTML, а функции рендеринга требуют только знания стандартного HTML и JavaScript. Функции рендеринга также получают пользу от более легкой отладки и тестирования.
На этом этапе, однако, вы не можете ошибоваться с Vue, так как он ввел опцию использования файлов или функций визуализации в версии 2.
Если вам нравится простота и вещи, которые «просто работают», иди с Vue.
Простой VUE-проект может быть запущен непосредственно из браузера без необходимости транспитации. Это позволяет легко легко упасть в проект, способ. JQuery.
Хотя это также технически возможно с реакцией, типичный код React Code наклоняется более активно на JSX и на особенностях ES6, такие как классы и методы не мутационного массива. Но простота Vue проходит более глубоко в своем дизайне. Давайте сравним, как два библиотеки обрабатывают данные приложения (то есть состояние «состояние»).
Состояние в реакции неизмерена, поэтому вы не можете напрямую изменить его. Вам нужно использовать SetState
Метод API:
this.setState({ message: this.state.message.split('').reverse().join('') });
Расстояние нынешнего и предыдущего состояния – это то, как реагировать, когда и что повторно рендерировать в доме, отсюда и необходимость в неизменном состоянии.
Напротив, данные просто мутируются в Vue. Тот же свойство данных может быть изменена гораздо менее признанным в Vue:
// Note that data properties are available as properties of // the Vue instance this.message = this.message.split('').reverse().join('');
Прежде чем заключить, что система рендеринга Vue должна не иметь эффективности реагирования, давайте рассмотрим, как состояние в Vue управляется под капотом: при добавлении нового объекта в состояние, Vue будет пройти все свои свойства и преобразовывать их в Getter и Соседниты. Система реактивности Vue теперь отслеживает состояние и автоматически повторно повторно отображает DOM, когда он мутируется.
Впечатляюще, изменение состояния в Vue – не только более кратко, но его система рендеринга на самом деле быстрее и эффективна, чем реагированные.
Система реактивности Vue имеет предостережения, хотя. Например, он не может обнаружить дополнение или удаление имущества и определенные изменения массива. Эти случаи могут быть обработаны с помощью реагирования Установить
Способ от Vue API.
Если вам нужно ваше приложение, чтобы быть максимально небольшим и быстрым, пойти с Vue.
Оба реагирования, так и VUE создаст виртуальный DOM и синхронизируют реальный DOM при изменении состояния приложения. Оба имеют свои собственные средства оптимизации этого процесса. Разработчики Vue Core предложили тестовой тест на тест, который показывает систему рендеринга VUE, чтобы быть быстрее, чем реагировать. В этом тесте список из 10000 предметов оказывается в 100 раз. Сравнение представлено ниже.
Ориентиры, как опубликовано на Vuejs.org
С прагматической точки зрения этот вид ориентира имеет отношение только в краевых случаях. Большинство приложений не нужно будет делать такую операцию регулярно, поэтому он, как правило, не должен рассматриваться важной точкой сравнения.
Размер страницы, однако, имеет отношение к всем проектам, и снова Vue имеет верх. Обыкновенный выпуск библиотеки Vue составляет всего 25,6 кб.
Чтобы получить аналогичный набор функциональных возможностей в реакции, вам нужен React DOM (37,4КБ) и реагирование с библиотекой аддонов (11,4 кБ), что составляет 48,8 кБ, почти удвоивает размер Vue. Быть справедливым, вы получите более широкий API с реагированием, но вы не получаете двойной функциональности.
Если вы планируете построить большое масштабное приложение, идите с реагированием.
Сравнение простого приложения, реализованного как в Vue, так и в реакции, подобно одному в начале этой статьи, может изначально предвнять разработчик для одобрения Vue. Это связано с тем, что приложения на основе шаблонов легче понять сначала понять и быстрее встать и работать с.
Но эти первоначальные выгоды вводят технические долги, которые могут замедлить разработку приложений, достигающих большего масштаба. Шаблоны склонны к незамеченным ошибкам времени выполнения, сложно проверить и нелегко реструктурируйте или разлагаются.
Напротив, шаблоны, сделанные JavaScript, могут быть организованы в компоненты с красиво разлагаемым и сухим кодом, который более многоразован и реализован.
Vue также имеет компонентную систему и функции визуализации. Но система рендеринга Rection более настраиваемым и имеет такие функции, как мелкие рендеринга, которые в сочетании с реактивными тестирующими утилизатами позволяют гораздо более тестируемым и поддерживаемым кодом.
Между тем неизменяемые данные о приложении Regact могут не быть таким же кратко, но он сияет в более широком применении, когда прозрачность и оправдание становятся критическими.
Если вы хотите библиотеку, которая адаптируется как для веб, так и нативных приложений, идут с реагированием.
React Nature – это библиотека для строительства собственных мобильных приложений с JavaScript. Это так же, как REVIET.JS, только вместо использования веб-компонентов, он использует нативные компоненты. Если вы узнали REVIET.JS, вы очень легко сможете забрать реагировать родным и наоборот.
import React, { Component } from 'react'; import { AppRegistry, Text, View } from 'react-native'; class HelloWorld extends Component { render() { return (); } } AppRegistry.registerComponent('HelloWorld', () => HelloWorld); Hello, React Native!
Значение заключается в том, что разработчик может построить приложение на веб или нативном мобильном телефоне, не требуя другого набора знаний и инструментов. Обучение React дает вам огромный взрыв для вас, если вы намереваетесь разрабатывать как для веб, так и для мобильных устройств.
Weex Alibaba – это еще одна кроссплатформенная интернет-интерфейс. В настоящее время он считает Vue «вдохновение» и использует много того же синтаксиса, с планами полностью интегрировать Vue. Тем не менее, временные и специфические данные этой интеграции все еще неясны.
Поскольку Vue имеет HTML-шаблоны в качестве основной части своего дизайна и не обладают пользовательским рендерингом в качестве текущей функции, трудно увидеть, что нативный аналог для Vue.js в его текущей форме будет столь же плотным, как и реагирует и реагировать Родные.
Если вы хотите самую большую экосистему, иди с реагированием.
Нет вопросов, который реагирует в настоящее время является более популярной библиотекой с ~ 2,5 м NPM загрузки в месяц в отличие от Vue ~ 225K в месяц.
Популярность не просто неглубокая выгода. Это означает, что есть больше статей, учебных пособий и переполнения стека для помощи. Это означает, что в проекте есть больше инструментов и дополнений, и сохраняют разработчиков от создания самих всего.
Оба библиотеки являются открытым исходным кодом, но реагирование родилось от Facebook и преимуществ от этого покровительства. Разработчики и компании, совершающие реагирование, могут быть уверены в постоянном обслуживании.
В отличие от этого, Vue был создан одним разработчиком, Evan You, и вы в настоящее время в настоящее время единственным постоянным временем Vue. Vue имеет какой-то корпоративный спонсорство, но не в масштабе Facebook или Google.
К кредиту команды Vue, его небольшие размеры и независимость не материализовались как недостаток. Vue имеет регулярный цикл релиза и даже более впечатляющим, Vue имеет только 54 открытых вопросов на GitHub по сравнению с 3456 замкнутыми проблемами, в то время как React имеет гораздо больше 530 открытых вопросов по сравнению с закрытыми 3447.
Если вы уже довольны одним или другим, нет необходимости переключаться.
Чтобы повторить, наши выводы, сильные стороны Vuu:
- Гибкие возможности для функций шаблонов или рендеринга
- Простота в синтаксисе и настройке проекта
- Более быстрый рендеринг и меньший размер
Сильные стороны реагирования:
- Лучше в масштабе, шире и более
- Веб и родные приложения
- Большая экосистема с большим количеством поддержки и инструментов
Тем не менее, как React и Vue являются исключительными библиотеками пользовательских интерфейсов и имеют больше сходств, чем различий. Большинство из их лучших функций разделены:
- Быстрый рендеринг с виртуальным домом
- Легкий
- Реактивные компоненты
- Серверный рендеринг
- Легкая интеграция с маршрутизатором, Bundler и управлением государством
- Большая поддержка и сообщество
Если вы думаете, что мы пропустили то, что мы хотели бы услышать в комментариях. Счастливое развитие!
Этот пост был первоначально опубликован авторами здесь Отказ Эта версия была отредактирована для ясности и может появиться отличаться от исходного поста.
О авторах
Возьмите бесплатный курс Vue.js. Узнайте, что Vue есть, какие приложения вы можете построить с ним, как он сравнивается с реагированием и угловым, и многое другое в этом 30- Возьмите бесплатный курс Vue.js. Узнайте, что Vue есть, какие приложения вы можете построить с ним, как он сравнивается с реагированием и угловым и угловым, а в этом 30-минуте введение видео. Записаться бесплатно ! R & Utm_Medium = Статья)! Я разработчик JavaScript и онлайн-инструктор курсов. Я запускаю блог Vue.js> Разработчики И автор Ultimate Vue.js Разработчики курс Отказ
Алексис Мангин
Алексис помог мне написать эту статью со своим исключительным знанием веб-разработки. Вы должны следовать за ним на Средний Как он пишет свои собственные отличные учебники по реагированию.
Стать старшим Vue Developer в 2020 году.
Учитесь и осваивайте, какие профессионалы знают о строительстве, тестировании и развертывании, полностью стековых Vue Apps в нашем последнем курсе.
Учить больше