Lorsque je développe des applications hybrides avec React Native. Le code JavaScript que j'écris se transforme-t-il en Java-Code ou Java-Bytecode pour Dalvik/ART Runtime lorsque je crée une application Android à partir de mon code React Native? Ou simplement les composants d'interface utilisateur sont-ils compilés en composants d'interface utilisateur natifs? Ou bien une bibliothèque telle que l'API Fetch compile-t-elle le code JavaScript en Java-Code ou Java-Bytecode?
En gros, vous écrivez en Javascript. Le Javascript communique avec les composants natifs (Java sous Android, Objective C sous iOS, C # sous Windows).
La communication se fait par le biais du "pont". Si, à un moment quelconque, vous estimez que cette communication ralentit trop, vous pouvez choisir d'implémenter la fonctionnalité Javascript en Java, Objective C ou C #, respectivement, afin de fonctionner de manière purement native. Dans ce cas, vous écrivez directement en code natif, il n’ya donc pas de code Javascript pour la compilation native.
Cela sacrifiera la compatibilité pour la performance. Normalement, ce n'est pas nécessaire.
Le code reste le code JavaScript natif et n'est converti dans aucun autre format. Les applications hybrides s'exécutent dans le conteneur natif, qui appelle le moteur d'exécution JavaScript, chargé de l'exécution du code JavaScript. J'espère que cela clarifie la question.
reat native fonctionne comme un wrapper par exemple si vous voulez mettre un bouton dans votre mise en page, vous mettez simplement une balise de bouton dans la mise en page mais ce bouton provient d'un bouton Android natif et vous utilisez simplement une API spécifique du module d'interface utilisateur appelée réact-native. vous pouvez créer votre module natif personnalisé et l'utiliser facilement dans votre projet natif de réaction.
Basé sur "React Made Native Easy" book:
Essentiellement, React Native peut être considéré comme un ensemble de React composants, où chaque composant représente le fichier natif correspondant vues et composants.
De plus, l'architechture autochtone React comprend deux parties:
Code natif/Modules: La plupart du code natif sous iOS est écrit en Objective C ou Swift, alors que sous Android, il l'est écrit en Java. Mais pour écrire notre application React Native, nous aurions à peine jamais besoin d'écrire du code natif pour iOS ou Android.
Javascript VM: La machine virtuelle JS qui exécute tout notre code JavaScript. Sur les simulateurs et appareils iOS/Android React Native utilise JavaScriptCore, qui est le moteur JavaScript qui alimente Safari. JavaScriptCore est un moteur JavaScript open source à l'origine construit pour WebKit. Dans le cas d'iOS, React Native utilise le JavaScriptCore fourni par la plate-forme iOS. Il a été introduit pour la première fois dans iOS 7 avec avec OS X Mavericks.
Et pour la communication entre ces parties:
React Native Bridge: React Native Bridge est un pont C++/Java qui est responsable de la communication entre le natif et Javascript fil. Un protocole personnalisé est utilisé pour la transmission des messages.