Ответ
Сигналы — это реактивные примитивы, которые автоматически обновляют зависимые значения при изменении состояния. Они позволяют создавать декларативные связи между данными без ручного управления подписками.
Пример с Solid.js:
const [count, setCount] = createSignal(0);
// Автоматически обновляется при изменении count
const doubled = () => count() * 2;
createEffect(() => {
console.log(doubled()); // Логирует 0, 2, 4...
});
setCount(1); // Триггерит эффект
Ключевые особенности:
- Только чтение через вызов функции (
count()) - Автоматическая отслеживание зависимостей
- Эффективное обновление только затронутых частей UI
- Нет виртуального DOM (в Solid.js)
Альтернативы: RxJS Observables, MobX, Vue refs.
Ответ 18+ 🔞
А, ну это ж про эти ваши сигналы, блядь! Ну, реактивные примитивы, ёпта! Это такая хитрая жопа, которая сама всё обновляет, как только что-то поменялось. Представь: ты ткнул в одно место, а оно, сука, по цепочке всё остальное само и поправило. Никаких ручных подписок, никакого «ой, бля, я забыл отписаться» — красота, да и только!
Вот смотри, как в Solid.js это выглядит, чтоб ты понимал масштаб этой ебли:
const [count, setCount] = createSignal(0);
// Вот эта штука — она умная, блядь! Автоматически пересчитается, когда count поменяется.
const doubled = () => count() * 2;
createEffect(() => {
console.log(doubled()); // Ну, выведет 0, потом 2, 4... Сам, сука, всё сделает!
});
setCount(1); // Щас как дёрнешь эту функцию — эффект тут же триггернется, всё обновится!
Вот в чём, блядь, соль-то, понимаешь?
- Чтобы прочитать значение, его надо вызвать, как функцию —
count(). Не просто переменная, а, блядь, функция! Сначала мозг сломаешь, а потом привыкнешь. - Зависимости отслеживает сама, ядрёна вошь! Не надо самому париться, кто от кого зависит.
- Обновляет только то, что реально поменялось. Никакого лишнего дергания всей системы, как у тех, прости господи, виртуальных DOM-ов. Эффективность — овердохуища!
- В том же Solid.js, например, виртуального DOM-а вообще нет. Вот так вот, нахуй! Всё сразу в реальный DOM лепит, где надо.
Ну а если эти сигналы тебе не зашли, есть же ещё куча вариантов, блядь! RxJS со своими Observables — там подписки, отписки, операторы... целая наука, ёперный театр! MobX — тоже крутая штука. Vue refs — ну, это для своих, для вьюшников. В общем, выбирай, не хочу. Главное — принцип улови: чтобы всё само текло, как по маслу, а не чтобы ты, как обосанный, за всем бегал и вручную синхронизировал.