PassFront
  1. PassFront
  2. База знаний
  3. Основы React

В чем разница между React и JQuery?

Основы React

React и jQuery — инструменты разных эпох и разных парадигм: jQuery упрощает императивные манипуляции DOM, React описывает интерфейс декларативно, как функцию состояния.

jQuery: императивный подход

$('#add-btn').on('click', function () {
  const item = $('#input').val();
  $('#list').append(`<li>${item}</li>`); // вручную меняем DOM
  $('#counter').text($('#list li').length); // и не забыть счётчик!
});

Разработчик сам находит элементы и пошагово обновляет каждый зависимый кусок страницы. С ростом приложения число связей «событие → куски DOM» растёт лавинообразно, забытые обновления дают рассинхрон.

React: декларативный подход

const TodoList = () => {
  const [items, setItems] = useState([]);
  return (
    <>
      <ul>{items.map((i) => <li key={i.id}>{i.text}</li>)}</ul>
      <span>{items.length}</span> {/* не может рассинхронизироваться */}
    </>
  );
};

Описывается конечный вид UI для любых данных; обновления DOM вычисляет React.

Отличия

  • Парадигма: как менять страницу шаг за шагом против как страница выглядит при данном состоянии.
  • Источник правды: DOM (значения читаются из него) против state.
  • Архитектура: jQuery не задаёт структуры; React даёт компоненты, композицию, однонаправленный поток данных.
  • Обновления: ручные точечные манипуляции против reconciliation по Virtual DOM.
  • Ниша сегодня: jQuery — легаси и мелкие вставки интерактивности на статических сайтах; React — приложения с богатым интерфейсом.

Коротко для собеседования

jQuery — библиотека императивных DOM-манипуляций: сам находишь и обновляешь элементы, источник правды — DOM. React — декларативная компонентная модель: UI = функция состояния, DOM обновляет reconciliation. Для приложений со сложным изменяемым интерфейсом jQuery-подход не масштабируется, поэтому индустрия перешла на React-подобные библиотеки.

Другие вопросы раздела