Table des matières
Avant-propos
Introduction à l'utilisation de npm
Créer un module
Maison interface Web tutoriel HTML Comment écrire des modules personnalisés dans React Native

Comment écrire des modules personnalisés dans React Native

Jun 19, 2017 pm 05:28 PM
native react

Avant-propos

Vous pouvez voir le dossier node_modules dans le projet React Native, où sont stockés les modules de nœuds. Le gestionnaire de packages Node.js npm est le plus grand écosystème de bibliothèques open source au monde. Lorsqu'il s'agit de npm, il fait généralement référence à deux significations : l'une est le système ouvert d'enregistrement et de gestion des modules Node.js, et l'autre est le gestionnaire de modules par défaut de Node.js, qui est un logiciel en ligne de commande utilisé pour installer et gérer les nœuds. modules. Cet article vise à explorer comment écrire un module npm personnalisé (similaire à un plug-in) dans React Native et le télécharger sur npm pour que d'autres puissent l'utiliser.

Introduction à l'utilisation de npm

npm est un module Node.js. L'installation de Node.js installera npm par défaut. Vous pouvez utiliser la commande suivante dans le terminal pour vérifier la version de npm :

npm -v
Copier après la connexion

Mise à niveau de npm :

sudo npm install npm -g
Copier après la connexion

Installer les modules (une fois l'installation terminée, un répertoire node_modules sera généré, sous lequel se trouvent les modules de nœuds installés) :

npm install <ModuleName>
Copier après la connexion

Afficher la configuration npm :

npm config list
Copier après la connexion

Configurer le proxy :

//设置 http 代理
npm config set proxy http://server:port
//设置 https 代理
npm config set https-proxy http://server:port
Copier après la connexion

Ce qui précède présente quelques commandes npm de base, puis vous pouvez créer un module localement.
Ouvrez d'abord un terminal et créez un nouveau dossier dans lequel vous souhaitez créer un module personnalisé, puis connectez-vous à npm sur la ligne de commande. Entrez la commande suivante :

npm adduser
Copier après la connexion

Vous serez invité à saisir votre nom d'utilisateur, votre mot de passe et votre adresse e-mail. Une fois terminé, vous pouvez saisir la commande suivante pour afficher l'utilisateur npm actuel :

npm whoami
Copier après la connexion
.

Si le nom d'utilisateur que vous venez d'enregistrer s'affiche correctement, la connexion est réussie. Utilisez ensuite la commande suivante pour créer le module npm :

npm init
Copier après la connexion

Après avoir exécuté la commande ci-dessus, vous serez guidé pour créer un fichier package.json, comprenant le nom, la version, les informations sur l'auteur, etc.

Créer un module

Je voudrais mentionner ici pourquoi vous devriez écrire un module personnalisé. Parce que bien que React Native implémente de nombreux composants natifs et fournisse des API riches, certaines bibliothèques natives ne sont toujours pas prises en charge, et il existe de nombreux composants et bibliothèques open source orientés natifs, donc si vous souhaitez utiliser ces composants et bibliothèques dans React Native, La bibliothèque doit définir un module par elle-même, afin qu'il puisse être facilement intégré par d'autres. Ensuite, nous passons directement au sujet. Écrivez un module personnalisé qui peut être utilisé dans React Native. Exécutez

react-native init AwesomeProject
Copier après la connexion

dans la ligne de commande pour initialiser un projet React Native. Ici, nous prenons Android comme exemple. Utilisez Android Studio pour sélectionner le menu Fichier->ouvrir pour ouvrir le dossier Android sous le dossier AwesomeProject, puis sélectionnez Fichier -> Nouveau -> comme le montre la figure :
Comment écrire des modules personnalisés dans React Native
Comme le montre l'image, un nouveau module Bibliothèque est créé ici. Ensuite, cliquez sur Terminer pour voir la structure de répertoires suivante :

Comment écrire des modules personnalisés dans React Native<.>

Ensuite, ajoutez tous les fichiers Jar dépendants dans le répertoire libs. Ici, nous utilisons jpush-sdk comme exemple. Copiez les bibliothèques téléchargées depuis le site officiel dans libs, placez les fichiers de ressources pertinents dans le dossier res, puis. copiez le contenu du fichier AndroidManifest. Changez le nom du package, et enfin configurez-le dans build.gradle, comme suit (notez ici que vous devez changer la targetSdkVersion en 22, car l'exécution sur 23 peut provoquer un crash) :

apply plugin: &#39;com.android.library&#39;
android {    
  compileSdkVersion 23    
  buildToolsVersion "23.0.2"    
  defaultConfig {        
    minSdkVersion 16        
    targetSdkVersion 22        
    versionCode 1        
    versionName "1.0"        
    manifestPlaceholders = [                
      JPUSH_APPKEY: "yourAppKey",  //在此修改JPush的AppKey                    
      APP_CHANNEL: "developer-default"      //应用渠道号        
    ]    
  }    
  lintOptions {        
    abortOnError false        
    warning &#39;InvalidPackage&#39;    
  }    
  sourceSets {        
    main {            
      jniLibs.srcDirs = [&#39;libs&#39;]        
    }    
}
}
repositories {    
  mavenCentral()
}

dependencies {    
  compile fileTree(dir: &#39;libs&#39;, include: [&#39;*.jar&#39;])    
  compile "com.facebook.react:react-native:+"
}
Copier après la connexion
Ça y est, nous La première étape est terminée. Ensuite, vous devez écrire le code pour l'interaction entre Native et JS. Vous pouvez vous référer aux parties de JS appelant Native et Native appelant JS dans mon article. . Je n'entrerai pas dans les détails ici. En supposant que nous avons terminé la partie native du code, comment pouvons-nous permettre à d'autres d'appeler notre code JS via l'importation dans JS, appelant ainsi Native ? Entrez d'abord dans le dossier my-react-library, puis exécutez

npm init
Copier après la connexion
dans le terminal pour générer le fichier package.json (notez le champ de nom ici, c'est le nom du module auquel les autres font référence vous), puis créez un fichier index.js est l'entrée JS du module de nœud. Il est recommandé d'utiliser Sublime Text pour écrire du JS. Voici jpush-react-native à titre d'exemple :

jpush-react-native/index.js Une partie du code

import {NativeModules, Platform, DeviceEventEmitter} from &#39;react-native&#39;;

// 通过 NativeModules 找到我们在 Native 定义的 JPushModule 类
const JPushModule = NativeModules.JPushModule;

export default class JPush {

    /**
     * Android only
     * 初始化JPush 必须先初始化才能执行其他操作
    */
    static initPush() {
        JPushModule.initPush();
    }
}
Copier après la connexion
Ce qui précède définit un initPush method, initPush En fait, la méthode initPush définie dans JPushModule est appelée. D'autres méthodes sont essentiellement similaires à celle-ci, les méthodes fournies par Native sont appelées via NativeModules.

## Publier
À ce stade, nous avons terminé le module personnalisé React Native. Il est maintenant temps de publier notre module personnalisé. Exécutez

npm publish
Copier après la connexion
dans le répertoire où se trouve package.json pour télécharger notre module personnalisé dans la bibliothèque npm. Chaque fois que vous mettez à jour la version, vous devez modifier la valeur de la version dans package.json, puis exécuter npm submit.

Utilisez

dans le répertoire React Native, exécutez :

npm install my-react-library --save
Copier après la connexion
Une fois l'installation terminée, ce module sera enregistré dans le dossier node_modules, puisque notre module est Il s'agit d'un projet de bibliothèque Android, il doit donc encore être configuré en natif. L'essentiel est d'ajouter des dépendances au projet :

le projet réactif natif de quelqu'un/un module/build.gradle

dependencies {    
  compile fileTree(dir: "libs", include: ["*.jar"])    
  compile "com.android.support:appcompat-v7:23.0.1"    
  compile "com.facebook.react:react-native:+"  // From node_modules   
  // 在 dependecies 中加入自定义模块 
  compile project(&#39;:my-react-library&#39;)
}
Copier après la connexion
Ensuite, configurez-le également dans settings.gradle :

le projet/settings.gradle natif de quelqu'un

include &#39;:app&#39;, &#39;:my-react-library&#39;
project(&#39;:my-react-library&#39;).projectDir = new File(rootProject.projectDir, &#39;../node_modules/my-react-library/android&#39;)
Copier après la connexion

在 MainActivity 中将自定义的 Package 添加进去:

MainActivity.java

...
mReactInstanceManager = ReactInstanceManager.builder()                
.setApplication(getApplication())                
.setBundleAssetName("index.android.bundle")                
.setJSMainModuleName("react-native-android/index.android")                
.addPackage(new MainReactPackage())
//添加自定义的 package
.addPackage(new MyReactPackage())
...
Copier après la connexion

如果是 RN 0.29.0 以上版本,则应在 MainApplication 中添加:

MainApplication.java

@Overrideprotected List<ReactPackage> getPackages() {    
return Arrays.<ReactPackage>asList(            
    new MainReactPackage(),            
    new MyReactPackage()    
  );
}
Copier après la connexion

到此为止我们完成了 Native 部分的配置(完成后 sync 一下),接下来就可以使用了。
别人要使用我们的模块时,就可以这样写:

someone.js

//这里的 &#39;my-react-library&#39;是在 package.json 定义的 name
// 这样就可以
import MyModule from &#39;my-react-library&#39;

export default class SomeClass  extends React.Component {
    componentDidMount() {
      // 调用 index.js 中定义的 doSomething()
      MyModule.doSomething();
    }
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment créer une application de chat en temps réel avec React et WebSocket Comment créer une application de chat en temps réel avec React et WebSocket Sep 26, 2023 pm 07:46 PM

Comment créer une application de chat en temps réel à l'aide de React et WebSocket Introduction : Avec le développement rapide d'Internet, la communication en temps réel a attiré de plus en plus d'attention. Les applications de chat en direct font désormais partie intégrante de la vie sociale et professionnelle moderne. Cet article expliquera comment créer une application simple de chat en temps réel à l'aide de React et WebSocket, et fournira des exemples de code spécifiques. 1. Préparation technique Avant de commencer à créer une application de chat en temps réel, nous devons préparer les technologies et outils suivants : React : un pour la construction

Guide pour la séparation du front-end et du back-end de React : Comment réaliser le découplage et le déploiement indépendant du front-end et du back-end Guide pour la séparation du front-end et du back-end de React : Comment réaliser le découplage et le déploiement indépendant du front-end et du back-end Sep 28, 2023 am 10:48 AM

Guide de séparation front-end et back-end de React : Comment réaliser un découplage front-end et back-end et un déploiement indépendant, des exemples de code spécifiques sont nécessaires Dans l'environnement de développement Web actuel, la séparation front-end et back-end est devenue une tendance. En séparant le code front-end et back-end, le travail de développement peut être rendu plus flexible, plus efficace et faciliter la collaboration en équipe. Cet article expliquera comment utiliser React pour réaliser une séparation front-end et back-end, atteignant ainsi les objectifs de découplage et de déploiement indépendant. Tout d’abord, nous devons comprendre ce qu’est la séparation front-end et back-end. Dans le modèle de développement Web traditionnel, le front-end et le back-end sont couplés

Comment créer des applications Web simples et faciles à utiliser avec React et Flask Comment créer des applications Web simples et faciles à utiliser avec React et Flask Sep 27, 2023 am 11:09 AM

Comment utiliser React et Flask pour créer des applications Web simples et faciles à utiliser Introduction : Avec le développement d'Internet, les besoins des applications Web deviennent de plus en plus diversifiés et complexes. Afin de répondre aux exigences des utilisateurs en matière de facilité d'utilisation et de performances, il devient de plus en plus important d'utiliser des piles technologiques modernes pour créer des applications réseau. React et Flask sont deux frameworks très populaires pour le développement front-end et back-end, et ils fonctionnent bien ensemble pour créer des applications Web simples et faciles à utiliser. Cet article détaillera comment exploiter React et Flask

Comment créer une application de messagerie fiable avec React et RabbitMQ Comment créer une application de messagerie fiable avec React et RabbitMQ Sep 28, 2023 pm 08:24 PM

Comment créer une application de messagerie fiable avec React et RabbitMQ Introduction : Les applications modernes doivent prendre en charge une messagerie fiable pour obtenir des fonctionnalités telles que les mises à jour en temps réel et la synchronisation des données. React est une bibliothèque JavaScript populaire pour créer des interfaces utilisateur, tandis que RabbitMQ est un middleware de messagerie fiable. Cet article explique comment combiner React et RabbitMQ pour créer une application de messagerie fiable et fournit des exemples de code spécifiques. Présentation de RabbitMQ :

Guide de débogage du code React : Comment localiser et résoudre rapidement les bogues frontaux Guide de débogage du code React : Comment localiser et résoudre rapidement les bogues frontaux Sep 26, 2023 pm 02:25 PM

Guide de débogage du code React : Comment localiser et résoudre rapidement les bogues frontaux Introduction : Lors du développement d'applications React, vous rencontrez souvent une variété de bogues qui peuvent faire planter l'application ou provoquer un comportement incorrect. Par conséquent, maîtriser les compétences de débogage est une capacité essentielle pour tout développeur React. Cet article présentera quelques techniques pratiques pour localiser et résoudre les bogues frontaux, et fournira des exemples de code spécifiques pour aider les lecteurs à localiser et à résoudre rapidement les bogues dans les applications React. 1. Sélection des outils de débogage : In Re

Guide de l'utilisateur de React Router : Comment implémenter le contrôle de routage frontal Guide de l'utilisateur de React Router : Comment implémenter le contrôle de routage frontal Sep 29, 2023 pm 05:45 PM

Guide de l'utilisateur de ReactRouter : Comment implémenter le contrôle du routage frontal Avec la popularité des applications monopage, le routage frontal est devenu un élément important qui ne peut être ignoré. En tant que bibliothèque de routage la plus populaire de l'écosystème React, ReactRouter fournit des fonctions riches et des API faciles à utiliser, rendant la mise en œuvre du routage frontal très simple et flexible. Cet article expliquera comment utiliser ReactRouter et fournira quelques exemples de code spécifiques. Pour installer ReactRouter en premier, nous avons besoin

Comment créer une application d'analyse de données rapide à l'aide de React et Google BigQuery Comment créer une application d'analyse de données rapide à l'aide de React et Google BigQuery Sep 26, 2023 pm 06:12 PM

Comment utiliser React et Google BigQuery pour créer des applications d'analyse de données rapides Introduction : À l'ère actuelle d'explosion de l'information, l'analyse des données est devenue un maillon indispensable dans diverses industries. Parmi eux, créer des applications d’analyse de données rapides et efficaces est devenu l’objectif poursuivi par de nombreuses entreprises et particuliers. Cet article explique comment utiliser React et Google BigQuery pour créer une application d'analyse rapide des données et fournit des exemples de code détaillés. 1. Présentation React est un outil pour créer

Comment empaqueter et déployer des applications frontales à l'aide de React et Docker Comment empaqueter et déployer des applications frontales à l'aide de React et Docker Sep 26, 2023 pm 03:14 PM

Comment utiliser React et Docker pour empaqueter et déployer des applications frontales L'empaquetage et le déploiement d'applications frontales sont une partie très importante du développement de projet. Avec le développement rapide des frameworks front-end modernes, React est devenu le premier choix de nombreux développeurs front-end. En tant que solution de conteneurisation, Docker peut grandement simplifier le processus de déploiement d'applications. Cet article explique comment utiliser React et Docker pour empaqueter et déployer des applications frontales et fournit des exemples de code spécifiques. 1. Préparation Avant de commencer, nous devons installer

See all articles