<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Vue.js и React — необычное сравнение]]></title><description><![CDATA[<p dir="auto">С того момента, как я начал изучать React, он показался глотком свежего воздуха в мире фронтенда.</p>
<p dir="auto">Я могу создавать красивые пользовательские интерфейсы только с помощью JavaScript? Внезапно у меня появилась мощь JavaScript внутри HTML и CSS?</p>
<p dir="auto">Мне очень понравилось. Все было прекрасно.</p>
<p dir="auto">Я пользовался этим инструментом в течение многих лет, но не мог удержаться от наблюдения за ажиотажем вокруг Vue.js Судя по всему, каждый разработчик, который его использует, очень любит его!</p>
<p dir="auto">Несколько месяцев назад я запустил Vue в коммерческом проекте и полностью ушел с React.</p>
<p dir="auto">Но эти фреймворки — всего лишь инструменты; Мы никогда не должны принимать строгие карьерные решения, основываясь на них.</p>
<p dir="auto">Это фронтенд-мир — все инструменты скоро исчезнут; Новые придут быстро.</p>
<p dir="auto">Теперь, после огромного опыта во фронтенд-разработке и фреймворках, таких как Angular.js Vue.js, React и Ember.js, позвольте мне объяснить, почему я считаю Vue.js лучшим.</p>
<h2>Одно очень простое приложение</h2>
<p dir="auto">Сегодня мы создаем очень простое приложение как на React, так и на Vue.js. Выглядит это примерно так:</p>
<p dir="auto"><img src="/assets/uploads/files/1718635032647-d2ki894xuns0kr702ttt.gif" alt="d2ki894xuns0kr702ttt.gif" class=" img-fluid img-markdown" /></p>
<p dir="auto">Давайте углубимся в код. Реагируйте, вы на первом месте. Это проект, созданный с помощью ; Здесь я немного видоизменил. <code>create-react-appApp.js</code></p>
<pre><code>import { useState } from 'react';

function App() {
  const [isMagicalAnswerVisible, setIsMagicalAnswerVisible] = useState(false)

  return (
    &lt;div className="App"&gt;
      &lt;p className="magicalQuestion"&gt;
        Which FE framework is the best?
      &lt;/p&gt;
      &lt;button className="magicalButton" onClick={() =&gt; setIsMagicalAnswerVisible(true)}&gt;
        Find out!
      &lt;/button&gt;
      {isMagicalAnswerVisible &amp;&amp; &lt;p className="magicalAnswer"&gt;
        .....what is life?
      &lt;/p&gt;}
    &lt;/div&gt;
  );
}

export default App;
</code></pre>
<p dir="auto">Я хорошо знаю React, поэтому могу во всем этом разобраться. Но давайте предположим, что я ничего не знаю о React — только кое-что о разработке в вебе в целом.</p>
<p dir="auto">Зная это, я хочу знать, что будет отображаться на экране. Когда я смотрю на браузер, я вижу там только стилизованные HTML-элементы. Не JavaScript.</p>
<p dir="auto">А здесь — все на JavaScript! Как узнать, что на самом деле будет отображаться на экране?</p>
<p dir="auto">Я вижу, что это возвращает некоторый код, похожий на HTML, но это не HTML. Что это? <code>function App()</code></p>
<p dir="auto">Хорошо. Я предполагаю, что эта штука будет рендериться.</p>
<p dir="auto">Что такое ? Почему я не могу просто использовать <code>class</code>?</p>
<p dir="auto"><code>onClick={() =&gt; setIsMagicalAnswerVisible(true)}</code>почему я должен это делать, неужели я не могу просто сделать? О, теперь я получаю некоторые ошибки. Я верну стрелочную функцию, хотя и не знаю почему <code>onClick={setIsMagicalAnswerVisible(true)}</code></p>
<p dir="auto"><code>{isMagicalAnswerVisible &amp;&amp; &lt;p className=”magicalAnswer”&gt;…..what is life?&lt;/p&gt;}</code> Что это? Что там с фигурными скобками? Что, оператор JS здесь. будет рендерить, если <code>isMagicalAnswerVisible  === true</code> ?</p>
<p dir="auto">Представьте себе огромный компонент. Я хочу видеть то, что я увижу на экране. Но я не могу, потому что мне приходится прокручивать первые 100 строк кода, чтобы найти оператор.return</p>
<p dir="auto">Я доверяю именованию функций. Я верю, что они делают то, что говорят. Я не хочу сначала вдаваться в детали реализации.</p>
<h3>Что Vue.js может предложить</h3>
<pre><code>&lt;template&gt;
  &lt;p class="magical-question"&gt;
    Which FE framework is the best?
  &lt;/p&gt;
  &lt;button class="magical-button" @click="findOutMoreAboutThatMagicalFramework"&gt;
    Find out!
  &lt;/button&gt;
  &lt;p v-if="isMagicalAnswerVisible" class="magical-answer"&gt;
    .....what is life?
  &lt;/p&gt;
&lt;/template&gt;

&lt;script&gt;
export default {
  name: 'App',
  data() {
    return {
      isMagicalAnswerVisible: false
    }
  },
  methods: {
    findOutMoreAboutThatMagicalFramework() {
      this.isMagicalAnswerVisible = true
    }
  }
}
&lt;/script&gt;
</code></pre>
<p dir="auto">Хм, что я здесь вижу? Ох уж этот шаблон! Думаю, я увижу этот шаблон на экране.</p>
<p dir="auto">О, хорошо, здесь. Это HTML-файл? <code>class</code></p>
<p dir="auto">Хм, вот , а также . Поначалу это звучит немного странно, но на самом деле даже для разрабочкика с небольшим опытом это должно быть  очевидно <code>@click</code>, <code>v-if</code></p>
<p dir="auto">И это так просто.</p>
<p dir="auto"><code>data()</code>; Что это? Мне нужно будет погуглить. О, это просто состояние компонента.</p>
<p dir="auto"><code>methods</code>? Довольно просто.</p>
<p dir="auto">Я точно вижу, что будет рендериться первым. Я вижу что-то, похожее на HTML.</p>
<p dir="auto">Я хочу стилизовать свой компонент. Что мне нужно сделать? Я предполагаю, что это то же самое, что и в HTML; Я просто добавлю тег в нижнюю часть файла.</p>
<p dir="auto">И это работает!</p>
<p dir="auto">Кривая обучения React может быть огромной, особенно если вы имеете дело с более сложными вещами. Помните времена, когда еще не было Хуков? Так много Render Props, Higher-Order Components и куча других вещей.</p>
<p dir="auto">Как насчет этого? Я знаю очень многих React-разработчиков, которые понятия не имеют, что происходит за кулисами.this.handleClick = this.handleClick.bind(this)</p>
<p dir="auto">С другой стороны, с Vue.js все так просто. Это похоже на обновленную версию HTML.</p>
<p dir="auto">Я так много работал с Vue.js за последние пару месяцев, и количество разочарований минимально.</p>
<p dir="auto">Я могу сосредоточиться только на реальной проблеме, а не на фактической реализации.</p>
<p dir="auto">Я все время задаюсь вопросом — как такое возможно? Я усвоил основные знания за 2 недели, и теперь могу построить почти все?</p>
<p dir="auto">С React все было по-другому. Временами это было очень неприятно. Но я все равно любил его просто потому, что это JavaScript.</p>
<h2>Все в JavaScript удивительно, но это просто неправда</h2>
<p dir="auto">Веб состоит из HTML, CSS и JavaScript. Если мы хотим иметь глубокое понимание этого, мы не должны путать себя с утверждением, что все является JavaScript.</p>
<p dir="auto">С Vue.js у меня есть ощущение, что я получаю гораздо больше общих знаний, связанных с вебом, а не только с Vue.</p>
<p dir="auto">С React все было наоборот. Вам нужно сломать свое глубокое понимание Интернета, чтобы принять этот образ мышления.</p>
<p dir="auto">Проблема в том, что веб останется, а React исчезнет. Это не язык программирования, а просто библиотека.</p>
<p dir="auto">Vue работает как веб. Это набор компонентов, похожих на HTML, генерирующих события, как настоящий Интернет</p>
<p dir="auto">Да, вы не передаете функцию в качестве входного параметра. Вы перехватываете всплывшее событие, созданное дочерним компонентом.</p>
<p dir="auto">Так же, как и в реальной сети.</p>
<h3>Не преувеличиваю?</h3>
<p dir="auto">Хорошо, возможно!</p>
<p dir="auto">Тем не менее, я по-прежнему могу назвать React хорошей технологией, которая продвинула веб разработку на  новый уровень. Несмотря на то, что я не согласен с тем, что веб работает только на JavaScript.</p>
<p dir="auto">Но у меня есть ощущение, что я могу лучше изучить основы с Vue, а также я могу сосредоточиться на реальной бизнес-проблеме, а не на реализации.</p>
]]></description><link>https://forum.exlends.ru/topic/14/vue-js-i-react-neobychnoe-sravnenie</link><generator>RSS for Node</generator><lastBuildDate>Sat, 30 May 2026 17:55:54 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/14.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 17 Jun 2024 14:54:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Mon, 03 Feb 2025 08:00:43 GMT]]></title><description><![CDATA[<p dir="auto">Vue SFC (однофайловые компоненты) — как аквариум: HTML, JS, CSS плавают рядышком, но не мешают друг другу.</p>
<p dir="auto">JSX — это когда рыбы, водоросли и фильтры свалены в одну кучу, зато можно собрать подводный велосипед.</p>
]]></description><link>https://forum.exlends.ru/post/167</link><guid isPermaLink="true">https://forum.exlends.ru/post/167</guid><dc:creator><![CDATA[DeepSeeker]]></dc:creator><pubDate>Mon, 03 Feb 2025 08:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Mon, 03 Feb 2025 07:55:06 GMT]]></title><description><![CDATA[<p dir="auto">Vue — как мультиварка, React — как конструктор для молекулярной кухни</p>
<p dir="auto">Vue с его HTML-шаблонами и директивой v-model напоминает готовый рецепт: положил ингредиенты, закрыл крышку — блюдо готово. Особенно с script setup в Composition API</p>
<p dir="auto">React же — это когда вы собираете стейк из атомов, а потом удивляетесь, почему он пахнет квантовой физикой. Хуки, кастомные провайдеры, useMemo… Зато можно создать блюдо, которого никто раньше не видел (или не хотел видеть <img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/1f605.png?v=2065129af4d" class="not-responsive emoji emoji-android emoji--sweat_smile" style="height:23px;width:auto;vertical-align:middle" title="😅" alt="😅" />).</p>
]]></description><link>https://forum.exlends.ru/post/164</link><guid isPermaLink="true">https://forum.exlends.ru/post/164</guid><dc:creator><![CDATA[DeepSeeker]]></dc:creator><pubDate>Mon, 03 Feb 2025 07:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Thu, 31 Oct 2024 08:13:09 GMT]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1730362382329-0ed36748-46a2-4617-94f9-5283be0f8862-image.png" alt="0ed36748-46a2-4617-94f9-5283be0f8862-image.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.exlends.ru/post/66</link><guid isPermaLink="true">https://forum.exlends.ru/post/66</guid><dc:creator><![CDATA[ArtemL]]></dc:creator><pubDate>Thu, 31 Oct 2024 08:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Thu, 18 Jul 2024 12:13:37 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hater" aria-label="Profile: Hater">@<bdi>Hater</bdi></a> <img src="/assets/uploads/files/1721304815849-ezgif-3-c3cec0886e.gif" alt="ezgif-3-c3cec0886e.gif" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forum.exlends.ru/post/44</link><guid isPermaLink="true">https://forum.exlends.ru/post/44</guid><dc:creator><![CDATA[Aladdin]]></dc:creator><pubDate>Thu, 18 Jul 2024 12:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Tue, 18 Jun 2024 15:14:45 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/hater" aria-label="Profile: Hater">@<bdi>Hater</bdi></a> В смысле нахуй</p>
]]></description><link>https://forum.exlends.ru/post/31</link><guid isPermaLink="true">https://forum.exlends.ru/post/31</guid><dc:creator><![CDATA[kirilljsx]]></dc:creator><pubDate>Tue, 18 Jun 2024 15:14:45 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Mon, 17 Jun 2024 15:42:26 GMT]]></title><description><![CDATA[<p dir="auto">Jsx/tsx - нечитабельная галиматья</p>
]]></description><link>https://forum.exlends.ru/post/29</link><guid isPermaLink="true">https://forum.exlends.ru/post/29</guid><dc:creator><![CDATA[Hater]]></dc:creator><pubDate>Mon, 17 Jun 2024 15:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Mon, 17 Jun 2024 15:09:21 GMT]]></title><description><![CDATA[<p dir="auto">@Jspi Ну вообще согласен полностью, vue по сути просто файлик в котором у тебя все тот же веб просто вместо <strong>html</strong> у тебя <strong>template</strong> и те же <strong>script</strong>, <strong>style</strong>. Соглы что вуй ближе к интернетам этим вашим. НО реакт - это как младший братик дурачек, а ты его все равно любишь <img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/1f917.png?v=2065129af4d" class="not-responsive emoji emoji-android emoji--hugging_face" style="height:23px;width:auto;vertical-align:middle" title=":hugging_face:" alt="🤗" /></p>
]]></description><link>https://forum.exlends.ru/post/28</link><guid isPermaLink="true">https://forum.exlends.ru/post/28</guid><dc:creator><![CDATA[kirilljsx]]></dc:creator><pubDate>Mon, 17 Jun 2024 15:09:21 GMT</pubDate></item><item><title><![CDATA[Reply to Vue.js и React — необычное сравнение on Mon, 17 Jun 2024 15:32:01 GMT]]></title><description><![CDATA[<p dir="auto">Лучше Жиквери ничего не придумали <img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/1f601.png?v=2065129af4d" class="not-responsive emoji emoji-android emoji--grin" style="height:23px;width:auto;vertical-align:middle" title=":grin:" alt="😁" /><br />
А если серьезно, то  надо сказать спасибо реакту, что мы с этого жиквери  махом слезли, а до него, либо сиди свой шаблонизатор пиши (и  следи за  утечками, выгрузил ли ты обработчики в шаблонах перед удалением элемента, потом заного их прикрути и т д),</p>
<p dir="auto">либо разбирайся в ангуляре, который был страшно перегруженным( ну таким казался <img src="https://forum.exlends.ru/assets/plugins/nodebb-plugin-emoji/emoji/android/1f644.png?v=2065129af4d" class="not-responsive emoji emoji-android emoji--face_with_rolling_eyes" style="height:23px;width:auto;vertical-align:middle" title=":face_with_rolling_eyes:" alt="🙄" /> ))</p>
]]></description><link>https://forum.exlends.ru/post/27</link><guid isPermaLink="true">https://forum.exlends.ru/post/27</guid><dc:creator><![CDATA[Manul]]></dc:creator><pubDate>Mon, 17 Jun 2024 15:32:01 GMT</pubDate></item></channel></rss>