Реактивные примитивы для выражения семантики данных.



по следам этого тредам



В джаваскрипте нельзя описать некоторые поля объекта readonly, а некоторые перезаписываемыми. Все или ничего. ТС может немного помочь, но и это не всегда удобно. К тому же у нас могут быть поля модификация которых доступна только для определенных модулей.



Реактивные примитивы помогают это описать и реализовать. Данные только для чтения мы оставляем нативными примитивами, данные для мутации заворачиваем в базовые атомы (можно мутировать). А комплексные данные заворачиваем в компьютед атомы, которые зависят от заданных при инициализации значений, но не должно меняться откуда-то извне.



Компьютедами решается важная проблема двунаправленного биндинга: мы не можем менять их значения снаружи - в типах и ЖСе это выразить нельзя или очень муторно. А с атомами все само работает, еще и реактивное :)



P.S. есть линзы и молекулы, которые позволяют менять компьютеды извне, но тк это специальная доп абстракция - это норм.