PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

В чем разница между фреймворком и библиотекой?

Продвинутые темы

Фреймворк и библиотека — оба переиспользуемый код, но различаются контролем: библиотеку вызываешь ты, а фреймворк вызывает твой код (инверсия управления).

Библиотека

Набор функций/компонентов, которые ты вызываешь тогда, когда нужно. Контроль потока у тебя.

import { format } from 'date-fns';
const s = format(new Date(), 'yyyy-MM-dd'); // ты решаешь, когда вызвать

Примеры: lodash, date-fns, React (формально — библиотека).

Фреймворк

Задаёт структуру и поток; ты пишешь код в его «слоты», а он вызывает его в нужный момент. Контроль у фреймворка.

Примеры: Angular, Vue (как фреймворк), Next.js, NestJS.

Инверсия управления (IoC)

  • Библиотека: «ты зовёшь её» (ты → библиотека).
  • Фреймворк: «он зовёт тебя» (фреймворк → твой код) — принцип «Не звоните нам, мы позвоним вам» (Hollywood Principle).

Практические различия

  • Гибкость: библиотека гибче, интегрируется в любой проект; фреймворк задаёт правила.
  • Структура: фреймворк диктует архитектуру; библиотека — нет.
  • Порог входа: фреймворк обычно выше.

React — библиотека или фреймворк?

Формально библиотека (UI), но с экосистемой (роутер, стейт) работает как фреймворк.

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

Разница в контроле (инверсия управления): библиотеку вызываешь ты, когда нужно (lodash), а фреймворк вызывает твой код и задаёт структуру (Angular, Next.js). Библиотека гибче, фреймворк диктует архитектуру. React формально — библиотека.

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