Были же JQuery, Backbone, например, зачем тогда нужен React/Vue/Angular?

 
🎯 Зачем спрашивают
  • Узнать, есть ли у кандидата понимание причин появления современных инструментов и понимания проблем, которые технологии решают
 
📝 Ответ
Коротко:
Данные технологии (JQuery, Backbone) решили лишь часть проблем, но не решили главную: мануальное обновление DOM.
 
jQuery привнес в язык синтаксический сахар, чтобы писать меньше кода:
  • Абстрагировать работу с DOM ($('#id') вместо document.querySelector)
  • Делать AJAX проще ($.ajax)
var xhr = new XMLHttpRequest(); xhr.open("GET", "https://jsonplaceholder.typicode.com/posts/1", true); xhr.onload = function() { if (xhr.status >= 200 && xhr.status < 300) { console.log("Успех:", JSON.parse(xhr.responseText)); } else { console.error("Ошибка:", xhr.status, xhr.statusText); } }; xhr.onerror = function() { console.error("Ошибка сети или CORS"); }; xhr.send();
 
$.ajax({ url: "https://jsonplaceholder.typicode.com/posts/1", // URL API method: "GET", dataType: "json", success: function(response) { console.log("Успех:", response); }, error: function(xhr, status, error) { console.error("Ошибка:", status, error); } });
jQuery — это императивный способ управления интерфейсом. Ты:
  • Говоришь браузеру: "сделай это, потом сделай то".
  • Сам следишь, как и когда менять DOM (и не забыть откатить изменения).
Пример:
$('#count').text(count);
Проблема:
Когда UI становится сложным (много состояний, вложенность, зависимости) — код превращается в непредсказуемый клубок if'ов и ручного DOM-менеджмента.
 
Backbone был шагом вперёд: появились модели, роутеры, вьюшки. Некий MVC-подход на фронтенде (появилась четкая структура/архитектура).
Но:
  • Отрисовка UI всё ещё вручную (el.html(this.template()))
  • Нет настоящей реактивности
  • Сильно завязан на структуру, но не на управление состоянием
 
⚖️ Компромиссы
 
🔎 Встречные вопросы
 
🚩 Красные флаги
 
🛠 Практика
 
📚 Источники / ссылки