Рубрики
Без рубрики

Как реагировать родные работы?

Как реагировать родные работы?

Автор оригинала: Saket Kumar.

Мы могли бы построить много приложений, использующих реактивную нативную платформу.

Но что происходит в нижнем уровне, в родном проекте?

Давайте сначала узнаем, что именно происходит в коде низкого уровня.

Темы в реактивном нативном приложении

Есть 4 потока в реактивном нативном приложении:

1) UI Тема: Также известен как главная нить. Это используется для нативного рендеринга Android или iOS UI. Например, в Android эта нить используется для меры/макета/розыгрыша Android.

2) js Тема: Js Thread или JavaScript Thread – это нить, где будет работать логика. Для E.G. Это нить, в которой выполняется код JavaScript приложения, выполняются вызовы API, сенсорные события обрабатываются и многие другие. Обновления нативных представлений находятся нанесены нанесенные и отправлены на родную сторону в конце каждого контура события в потоке JS (и выполняются в конце концов в потоке UI).

Чтобы поддерживать хорошую производительность, нить JS должна иметь возможность отправлять дозированные обновления в потоке пользовательского интерфейса до следующего срока рендеринга кадров. Например, отображение iOS 60 кадров в секунду и это приводит к новой кадре каждые 16,67 мс. Если вы выполняете какую-то сложную обработку в вашем цикле событий JavaScript, что приводит к изменениям пользовательских интерфейсов, и требуется более 16,67 мс, тогда UI появится вязкость.

Одним из исключений являются родные представления, которые полностью происходят в потоке интернет-пользовательского интерфейса, например, Navigatorios или ScrollView полностью выполняются в потоке UI, и, следовательно, не заблокированы из-за медленной резьбы JS.

3) Нативные модули Тема: Иногда приложение нуждается в доступе к API платформы, и это происходит как часть нити нативного модуля.

4) Визуализация нить: Только в Android L (5.0), RECT NATURE RENDER TOKET используется для создания фактических команд OpenGL, используемых для рисования вашего пользовательского интерфейса.

Процесс, участвующий в работе реагировать

  1. При первом запуске приложения основной нить запускает выполнение и запускает загрузочные пакеты JS.

  2. Когда код JavaScript был успешно загружен, основной поток отправляет его на другой нить JS, потому что когда JS каковы некоторые тяжелые расчеты на некоторое время казатся нить, нить пользовательского интерфейса не будет страдать.

  3. Когда React Start Rendering Reconiver начинает «отличаться», и когда он генерирует новый виртуальный DOM (макет), он отправляет изменения в другой поток (теневая нить).

  4. Тень нити рассчитывает макет, а затем отправляет параметры макета/объекты в основной (UI) поток. (Здесь вы можете удивить, почему мы называем это «тенью»? Это потому, что он генерирует теневые узлы)

  5. Поскольку только основной нить может сделать что-то на экране, тень-нить должна отправлять сгенерированную макет в основную нить, и только тогда UI рендерирует.

Разделение реактивного родного

Как правило, мы можем отделить реагировать на родных на 3 части:

  1. Реагировать родной – родная сторона

  2. React Native – JS Side

  3. Реагировать родной – мост

Это часто называют «3 частями реактивных народных»