С какими UI фреймворками работал

Ответ

Работал с React, Vue.js и Angular. Наиболее глубокий опыт - с React (5+ лет).

Основные библиотеки в экосистеме React:

  • UI-киты: Material-UI, Ant Design, Chakra UI
  • State-менеджмент: Redux (Thunk/Saga), MobX, Context API
  • Формы: Formik, React Hook Form
  • Стилизация: CSS Modules, Styled Components, Tailwind CSS

Пример работы с Material-UI:

import { Button, TextField } from '@mui/material';

function MyForm() {
  return (
    <form>
      <TextField label="Email" variant="outlined" />
      <Button variant="contained" color="primary">
        Submit
      </Button>
    </form>
  );
}

Также есть опыт адаптации UI под разные устройства и кросс-браузерную совместимость.

Ответ 18+ 🔞

Слушай, вот сижу, вспоминаю, как по этим фреймворкам ползал. React, Vue.js, Angular — все эти штуки, блядь. Ну, React, конечно, мой старый друг, с ним уже лет пять, не меньше, вротберунчик. Прям как собака Муму, только не топлю, а обнимаю.

Основные библиотеки, на которых всё держится, это отдельная песня, ёпта.

  • UI-киты: Material-UI, Ant Design, Chakra UI. Ну, Material-UI — это вообще классика, как Лев Толстой, только без плагиата. Красиво, удобно, но иногда такой овердохуища настроек, что хочется чих-пых тебя в сраку.
  • State-менеджмент: Redux (с этими Thunk/Saga), MobX, Context API. Redux — это ж отдельная история, блядь. Раньше надо было столько хуйни написать, чтобы кнопку переключить, что терпения ноль ебать. Сейчас вроде полегче, но осадок остался.
  • Формы: Formik, React Hook Form. Вот за React Hook Form я готов, сука, руку отрубить — такая хитрая жопа, но работает как часы. Formik тоже ничего, но там иногда такая логика, что волнение ебать.
  • Стилизация: CSS Modules, Styled Components, Tailwind CSS. Tailwind — это вообще, блядь, наркотик. Попробуешь — и потом на чистом CSS смотреть не можешь, как на луковицу Чиполлино.

Вот, например, кусок кода с Material-UI, который у всех в каждом проекте валяется, как этот немой Герасим в подвале:

import { Button, TextField } from '@mui/material';

function MyForm() {
  return (
    <form>
      <TextField label="Email" variant="outlined" />
      <Button variant="contained" color="primary">
        Submit
      </Button>
    </form>
  );
}

Смотри, вроде всё просто, но попробуй это заставить работать с формами и состоянием — сразу начинается «Муму-муму», блядь, трагедия целая.

Ну и, конечно, адаптация под все эти ебушкины устройства — от телефона, размером со спичечный коробок, до широких, сука, мониторов. И чтобы везде выглядело, а не как пизда с ушами. Кросс-браузерность — это отдельный ад, где каждый браузер ведёт себя как полупидор, со своими приколами. Но ничего, справлялись, ебать мои старые костыли.