Команда react-native объявила, что в 2022 году будет выпущена новая архитектура.

2022 год станет годом Новой архитектуры с открытым исходным кодом.

а зачем новая архитектура? чтобы понять, зачем смотреть на текущую реактивную архитектуру

давайте повторим текущие компоненты архитектуры

Мост: управление связью между потоком JavaScript и собственным потоком/потоком пользовательского интерфейса.

JavaScriptCore: движок в Android для запуска кода JavaScript на вашем Android, который связан с вашим приложением.

Йога: механизм компоновки берет все стили на основе flex-box и преобразует их в нативную ширину, высоту и интервалы макета.

Добро пожаловать в новую реактивную архитектуру

как мы видим, мост будет заменен модулем под названием JSI (JavaScript Interface)

так что же такое JSI (интерфейс JavaScript)?

Облегченный API для встраивания механизма JavaScript в приложение C++. Fabric использует его для связи между ядром C++ Fabric и React.

поскольку JSI написан на C++, что позволяет JS напрямую вызывать нативные методы, что означает меньшую сериализацию данных между JS и Native/UI-потоком, с мощью C++ React-Native, расширит новые системы, такие как умные часы, телевизоры.

В другом случае мост совместим только с движком JavaScriptCore, который не похож на JSI, JSI позволяет использовать другие движки JavaScript, такие как Chakra, v8, Hermes и т. д., которые уменьшат размер приложения в Android.

Турбо модули

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

Итак, что делает турбо-модуль, так это хранит только ссылки на те нативные модули, что означает вызывать их только тогда, когда они требуются, что улучшит время запуска.

КодГен

CodeGen будет средством проверки типов, JSI, как мы обсуждали выше, JSI написан на C++, C++ — это язык со статической типизацией, а приложения, созданные для реагирования, написаны на JavaScript, который является языком с динамической типизацией, поэтому CodeGen обеспечит связь между ними.

Примечание: разница между языком со статической типизацией и языком с динамической типизацией заключается в том, что в языках программирования со статической типизацией проверка типов выполняется во время компиляции. И наоборот, в языках с динамической типизацией проверка типов выполняется во время выполнения или во время выполнения.

Ткань

еще одно большое улучшение в новой архитектуре — Fabric.

Fabric — это новая система рендеринга React Native, концептуальная эволюция устаревшей системы рендеринга.

мы обсудим Fabric в следующей статье.