<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with OASIS Tables with MathML3 v1.4 20241031//EN" "https://jats.nlm.nih.gov/archiving/1.4/JATS-archive-oasis-article1-4-mathml3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" dtd-version="1.4" article-type="research-article" xml:lang="en"><front><journal-meta><journal-title-group><journal-title xml:lang="ru">Цифровое право</journal-title></journal-title-group><issn publication-format="print">3034-4271</issn><issn publication-format="electronic">3034-4271</issn></journal-meta><article-meta><article-id pub-id-type="doi">10.24412/3034-4271-2026-3-79-85</article-id><article-categories><subj-group><subject>Other</subject></subj-group></article-categories><title-group><article-title xml:lang="ru">СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПОДХОДОВ К РЕАКТИВНОМУ РЕНДЕРИНГУ ПОЛЬЗОВАТЕЛЬСКИХ ИНТЕРФЕЙСОВ: ПРОПРИЕТАРНЫЕ МЕХАНИЗМЫ И СТАНДАРТ TC39 SIGNALS</article-title><trans-title-group xml:lang="en"><trans-title>SRAVNITELNYY ANALIZ PODKhODOV K REAKTIVNOMU RENDERINGU POLZOVATELSKIKh INTERFEYSOV: PROPRIETARNYE MEKhANIZMY I STANDART TC39 SIGNALS</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author"><name-alternatives><name xml:lang="ru"><surname>Ханов</surname><given-names>Искандер Маратович</given-names></name><name xml:lang="en"><surname>Khanov</surname><given-names>Iskander Maratovich</given-names></name></name-alternatives><xref ref-type="aff" rid="aff1"/><xref ref-type="aff" rid="aff2"/><email>iskanderhanov@yandex.ru</email></contrib><aff-alternatives id="aff1"><aff><institution xml:lang="en">4th year Bachelor’s student, Kazan State Power Engineering University</institution></aff></aff-alternatives><aff-alternatives id="aff2"><aff><institution xml:lang="ru">студент, Казанский государственный энергетический университет</institution></aff></aff-alternatives></contrib-group><pub-date pub-type="epub" iso-8601-date="2026-01-01"><day>01</day><month>01</month><year>2026</year></pub-date><issue>3</issue><fpage>79</fpage><lpage>85</lpage><history><date date-type="received" iso-8601-date="2026-06-10"><day>10</day><month>06</month><year>2026</year></date><date date-type="accepted" iso-8601-date="2026-06-30"><day>30</day><month>06</month><year>2026</year></date></history><abstract xml:lang="ru"><p>Реактивный рендеринг в современных JavaScript-фреймворках реализован через собственные, несовместимые между собой механизмы. В статье проверяется, способны ли стандартизируемые примитивы TC39 Signals стать основой конкурентоспособного фреймворка. На базе полифилла signal-polyfill разработан экспериментальный микро-фреймворк и сопоставлен с пятью распространенными решениями по трём показателям: размер дистрибутива, производительность DOM-операций и объем прикладного кода. По всем трём исследуемый фреймворк показал результаты на уровне аналогов или выше в целевом классе задач - встроенные виджеты и статические сайты безэтапа сборки. Результаты подтверждают достаточность примитивов TC39 Signals для построения фреймворка рендеринга.</p></abstract><abstract xml:lang="en" abstract-type="summary"><p>Reactive rendering in modern JavaScript frameworks is implemented through proprietary, mutually incompatible mechanisms. This paper examines whether the standardized TC39 Signals primitives canserve as a foundation for a competitive framework. An experimental micro-framework wasbuilt on the signalpolyfill reference implementation and benchmarked against five established solutions across three metrics: bundle size, DOMperformance, and application code volume. Across allthree metrics, the framework proved comparable to or better than itspeers in the target usecase - embedded widgets and static sites without a build step. The results confirm that TC39 Signals primitives are sufficient for building a rendering framework.</p></abstract><kwd-group xml:lang="ru"><kwd>реактивный рендеринг</kwd><kwd>веб-фреймворк</kwd><kwd>виртуальный DOM</kwd><kwd>fine-grained реактивность</kwd><kwd>производительность DOM</kwd><kwd>размер дистрибутива</kwd><kwd>сравнительный анализ</kwd></kwd-group><kwd-group xml:lang="en"><kwd>reactive rendering</kwd><kwd>webframework</kwd><kwd>TC39 Signals</kwd><kwd>virtual DOM</kwd><kwd>fine-grained reactivity</kwd><kwd>DOMperformance</kwd><kwd>bundle size</kwd><kwd>comparative analysis</kwd></kwd-group></article-meta></front><back><ref-list><ref id="ref1"><mixed-citation publication-type="other" xml:lang="en">Bainomugisha E., Lombide Carreton A., VanCutsem T., Mostinckx S., DeMeuter W. A Survey on Reactive Programming // ACMComputing Surveys. - 2013. - T. 45, No. 4. - Article 52. - 34 p.</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Bainomugisha E., Lombide Carreton A., VanCutsem T., Mostinckx S., DeMeuter W. A Survey on Reactive Programming // ACMComputing Surveys. — 2013. — Т. 45, № 4. — Article 52. — 34 с.</mixed-citation></ref><ref id="ref2"><mixed-citation publication-type="other" xml:lang="en">Ollila R., Mдkitalo N., Mikkonen T. Modern WebFrameworks: A Comparison of Rendering Performance // Journal of WebEngineering. - 2022. - T. 21, No. 3. - P. 789–813.</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Ollila R., Mдkitalo N., Mikkonen T. Modern WebFrameworks: A Comparison of Rendering Performance // Journal of WebEngineering. — 2022. — Т. 21, № 3. — С. 789–813.</mixed-citation></ref><ref id="ref3"><mixed-citation publication-type="other" xml:lang="en">Harris R. Frameworks without the framework: whydidn’t wethink of this sooner? // Svelte Blog. — 2016. — URL: https://svelte.dev/blog/frameworkswithout-the-framework (accessed: 13.04.2026). ЦИФРОВОЕ ПРАВО № 3 (ИЮЛЬ - СЕНТЯБРЬ) 2026 г. 85</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Harris R. Frameworks without the framework: whydidn’t wethink of this sooner? // Svelte Blog. — 2016. — URL: https://svelte.dev/blog/ frameworks-without-the-framework (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref4"><mixed-citation publication-type="other" xml:lang="en">Harris R. Virtual DOM is pure overhead // Svelte Blog. — 2018. — URL: https://svelte.dev/ blog/virtual-dom-is-pure-overhead (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Harris R. Virtual DOM is pure overhead // Svelte Blog. — 2018. — URL: https://svelte.dev/ blog/virtual-dom-is-pure-overhead (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref5"><mixed-citation publication-type="other" xml:lang="en">Ehrenberg D., Eisenberg R. et al. TC39 Proposal: Signals // GitHub TC39. — 2024. — URL: https://github.com/tc39/proposal-signals (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Ehrenberg D., Eisenberg R. et al. TC39 Proposal: Signals // GitHub TC39. — 2024. — URL: https://github.com/tc39/proposal-signals (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref6"><mixed-citation publication-type="other" xml:lang="en">Eisenberg R. A TC39 Proposal for Signals // Medium (Better Programming). - 2024. - URL: https://eisenbergeffect.medium.com/a-tc39proposal-for-signals-f0bedd37a335 (access date: 04/13/2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Eisenberg R. A TC39 Proposal for Signals // Medium (Better Programming). — 2024. — URL: https://eisenbergeffect.medium.com/a-tc39proposal-for-signals-f0bedd37a335 (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref7"><mixed-citation publication-type="other" xml:lang="en">React Team. React — A JavaScript library for building user interfaces // Meta Open Source. - 2024. - URL: https://react.dev (access date: 04/13/2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">React Team. React — A JavaScript library for building user interfaces // Meta Open Source. — 2024. — URL: https://react.dev (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref8"><mixed-citation publication-type="other" xml:lang="en">Bai A. Million.js: A Fast Compiler-Augmented Virtual DOM for the Web // Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing (SAC ‘23). - NewYork: ACM, 2023. - pp. 1813–1820.</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Bai A. Million.js: A Fast Compiler-Augmented Virtual DOM for the Web // Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing (SAC ‘23). — NewYork: ACM, 2023. — С. 1813– 1820.</mixed-citation></ref><ref id="ref9"><mixed-citation publication-type="other" xml:lang="en">You E. Composition API RFC // GitHub. — 2019. — URL: https://github.com/vuejs/rfcs/blob/ master/active-rfcs/0013-composition-api.md (date of access: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">You E. Composition API RFC // GitHub. — 2019. — URL: https://github.com/vuejs/rfcs/blob/ master/active-rfcs/0013-composition-api.md (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref10"><mixed-citation publication-type="other" xml:lang="en">Carniato R. A Hands-on Introduction to Fine-Grained Reactivity // DEVCommunity. — 2021. — URL: https://dev.to/ryansolid/a-hands-onintroduction-to-fine-grained-reactivity-3ndf (date of access: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Carniato R. A Hands-on Introduction to Fine-Grained Reactivity // DEVCommunity. — 2021. — URL: https://dev.to/ryansolid/a-hands-onintroduction-to-fine-grained-reactivity-3ndf (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref11"><mixed-citation publication-type="other" xml:lang="en">ECMA International. ECMAScript 2024 Language Specification (ECMA-262). — 2024. — URL: https://tc39.es/ecma262/ (date of access: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">ECMA International. ECMAScript 2024 Language Specification (ECMA-262). — 2024. — URL: https://tc39.es/ecma262/ (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref12"><mixed-citation publication-type="other" xml:lang="en">TasteJS. TodoMVC — Helping youchoose an MV* framework // GitHub. — 2012–2026. — URL: https://github.com/tastejs/todomvc (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">TasteJS. TodoMVC — Helping youselect an MV* framework // GitHub. — 2012–2026. — URL: https://github.com/tastejs/todomvc (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref13"><mixed-citation publication-type="other" xml:lang="en">Author. micro-reactive — A micro-framework for reactive rendering of interfaces // GitLab. — 2025–2026. — URL: https://gitlab.com/eners/ micro-reactive-framework (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Автор. micro-reactive — микро-фреймворк для реактивного рендеринга интерфейсов // GitLab. — 2025–2026. — URL: https://gitlab.com/ eners/micro-reactive-framework (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref14"><mixed-citation publication-type="other" xml:lang="en">Bundlephobia — An online tool for finding the cost of adding an npmpackage to your bundle. — URL: https://bundlephobia.com (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Bundlephobia — online tool for finding the cost of adding a npmpackage to your bundle. — URL: https://bundlephobia.com (дата обращения: 13.04.2026).</mixed-citation></ref><ref id="ref15"><mixed-citation publication-type="other" xml:lang="en">Krause S. js-framework-benchmark // GitHub. — 2015–2026. — URL: https://github. com/krausest/js-framework-benchmark (accessed: 13.04.2026).</mixed-citation><mixed-citation publication-type="other" xml:lang="ru">Krause S. js-framework-benchmark // GitHub. — 2015–2026. — URL: https://github.com/ krausest/js-framework-benchmark (дата обращения: 13.04.2026).</mixed-citation></ref></ref-list></back></article>
