Подтвердить что ты не робот

Компилирует ли React Native JavaScript в Java для Android?

Когда я разрабатываю гибридные приложения с React Native. Преобразуется ли написанный мной код JavaScript в Java-код или Java-байт-код для среды выполнения Dalvik/ART при создании приложения Android из моего кода React Native? Или только компоненты пользовательского интерфейса скомпилированы в нативные компоненты пользовательского интерфейса? Или библиотека, такая как Fetch API, компилирует код JavaScript в Java-код или Java-байт-код?

4b9b3361

Ответ 1

В принципе, вы пишете Javascript. Javascript общается с собственными компонентами (Java на Android, Objective C на iOS, С# в Windows).

Связь происходит через так называемый "мост". Если в любое время вы чувствуете, что это сообщение слишком сильно замедляет работу, вы можете реализовать функциональность Javascript в Java, Objective C или С# соответственно, чтобы запустить чисто native. В этом случае вы пишете непосредственно в собственном коде, поэтому нет Javascript для встроенной компиляции.

Это принесет жертву совместимость для производительности. Обычно это необязательно.

Ответ 2

Код остается родным кодом JavaScript и не преобразуется в какой-либо другой формат. Гибридные приложения запускаются внутри собственного приложения-контейнера, которое вызывает механизм времени выполнения JavaScript, который заботится о выполнении кода JavaScript. Надеюсь, это прояснит вопрос.

Ответ 3

По материалам книги "React Made Native Easy" :

По сути, React Native можно рассматривать как набор React компоненты, где каждый компонент представляет соответствующий нативный виды и компоненты.

Кроме того, в React Native architechture есть две части:

  1. Собственный код/​​модули: Большая часть нативного кода для iOS написана на Objective C или Swift, а в случае Android - написано на Java. Но для написания нашего приложения React Native мы вряд ли когда-нибудь нужно написать собственный код для iOS или Android.

  2. Javascript VM: JS Virtual Machine, которая выполняет весь наш код JavaScript. На iOS/Android симуляторы и устройства React Native использует JavaScriptCore, который является движком JavaScript, который обеспечивает Сафари. JavaScriptCore изначально является движком JavaScript с открытым исходным кодом. построен для WebKit. В случае iOS React Native использует JavaScriptCore предоставляется платформой iOS. Впервые он был представлен в iOS 7 вместе с с OS X Mavericks.

И для связи между этими частями:

Собственный мост React: Собственный мост React - это мост C++/Java, который отвечает за общение между нативом и Javascript нить. Пользовательский протокол используется для передачи сообщений.

Ответ 4

reat native работает как оболочка, например, если вы хотите поместить кнопку в свой макет, вы просто помещаете тег кнопки в макет, но эта кнопка происходит от нативной кнопки android, и вы просто используете определенный API из модуля пользовательского интерфейса, называемый реагировать-нативный. Вы можете легко создать собственный модуль и использовать его в своем собственном проекте.

Ответ 5

Реагировать на родной

Реагировать → JavaScriptCore → Собственный код → "Что вы видите"

Гибридное приложение

JavaScript → Собственная оболочка WebView → "Что вы видите"

Ответ 6

Цитата с сайта напрямую

С React Native вы не создаете "мобильное веб-приложение", "приложение HTML5" или "гибридное приложение". Вы создаете настоящее мобильное приложение, которое неотличимо от приложения, созданного с помощью Objective-C или Java. React Native использует те же основные базовые компоненты пользовательского интерфейса, что и обычные приложения для iOS и Android. Вы просто добавляете эти строительные блоки, используя JavaScript и React.

Итак, вы кодируете javascript и преобразуетесь в собственный код.