Урок 01

Vue vs React: философия и подходы

Два подхода

React — библиотека от Facebook. Vue — фреймворк от Эвана Ю.

Оба делают одно — реактивные UI. Но философия разная.

React: всё JavaScript

export function Counter() {
    const [count, setCount] = useState(0);

    return (
        <button onClick={() => setCount(count + 1)}>
            Кликов: {count}
        </button>
    );
}

Разметка в JS. Всё — функции и объекты.

Vue: разделение

<script setup>
import { ref } from 'vue';
const count = ref(0);
</script>

<template>
    <button @click="count++">Кликов: {{ count }}</button>
</template>

Разметка в HTML. Логика отдельно.

Ключевые отличия

ReactVue
Язык шаблоновJSXHTML
РеактивностьЯвная (setState)Автоматическая
СтилиCSS-in-JSSFC (scoped)
Размер~45 КБ~35 КБ
Кривая обученияВышеНиже
ГибкостьМаксимумПравила из коробки

Кто использует

React: Facebook, Instagram, Netflix, Airbnb, Uber

Vue: Alibaba, GitLab, Adobe, BMW, Nintendo

Что общего

  • Компонентный подход
  • Виртуальный DOM
  • Реактивность
  • Хуки / Composables
  • Большая экосистема

Когда React

  • Огромное сообщество
  • React Native для мобильных
  • Больше вакансий
  • Корпоративная стандартизация
  • Максимальная гибкость

Когда Vue

  • Быстрый старт
  • Простой синтаксис
  • Меньше boilerplate
  • Хорошая документация
  • Азиатский рынок

Что важно для перехода

Из React в Vue:

  • useState → ref
  • useEffect → watch / watchEffect
  • useMemo → computed
  • JSX → <template>
  • Context → provide/inject

Из Vue в React:

  • ref → useState
  • computed → useMemo
  • watch → useEffect
  • <template> → JSX

Итог

Не спорь «что лучше». Оба хороши. React — гибче, Vue — проще. Знай оба — больше возможностей.

Дальше — реактивность: ref vs useState.