MVC est un paradigme très populaire dans le développement Web et existe depuis un certain temps. Le framework React est un élément puissant de cette trinité Model-View-Controller, car il se concentre uniquement sur View. React est écrit en JavaScript et créé par les équipes de développement Facebook et Instagram..
React est utilisé sur tout le Web pour créer des applications Web rapides et faciles à gérer en raison de la structure du cadre React pour structurer le code de la couche de visualisation..
Pour commencer, voici un exemple simple de React tiré des exemples officiels:
var HelloMessage = React.createClass (render: function () returnBonjour this.props.name; ); React.render (, document.getElementById ('conteneur'));
Cet exemple rendra "Hello John" en un JSX est une syntaxe de type XML / HTML utilisée pour rendre le code HTML à partir de code JavaScript. React transforme JSX en JavaScript natif pour le navigateur et avec les outils fournis, vous pouvez convertir le code HTML de vos sites existants en JSX.! JSX permet de mélanger facilement le code car cela ressemble à écrire du code HTML natif mais à partir de JavaScript. Combiné avec Node, cela donne un flux de travail très cohérent. JSX n’est pas nécessaire pour utiliser React; vous pouvez simplement utiliser JS mais c’est un outil très puissant qui facilite la définition des arborescences avec des attributs et leur attribution. Je recommande donc vivement son utilisation.. Pour restituer une balise HTML dans React, utilisez simplement des noms de balises minuscules avec certains JSX, comme ceci: Il y a plusieurs façons d'utiliser React. La manière officiellement recommandée est à partir du CDN de npm ou de Facebook, mais vous pouvez également cloner à partir du git et construire le vôtre. Vous pouvez également utiliser le kit de démarrage ou gagner du temps avec un générateur d'échafaudage de Yeoman. Nous allons couvrir toutes ces méthodes afin que vous ayez une compréhension complète. Pour obtenir le moyen le plus rapide de commencer, incluez simplement les bibliothèques React et React Dom à partir du CDN fb.me comme suit: Le manuel React recommande d’utiliser React avec un système de module CommonJS tel que browserify ou webpack.. Le manuel React recommande également d’utiliser le Vous pourrez maintenant voir l’installation de React à l’intérieur du Vous devez avoir Node V4.0.0 + et npm v2.0.0 +. Vous pouvez vérifier la version de votre noeud avec Je recommande d'utiliser le gestionnaire de versions nvm-node pour mettre à jour et sélectionner votre version de nœud. Il est facile d’obtenir nvm en exécutant simplement: Ce script clone le référentiel NVM sur Si vous souhaitez installer manuellement Pour activer nvm avec cette méthode, vous devez l’alimenter à partir de shell avec: Remarque: Ajoutez cette ligne à votre Avec nvm maintenant installé, nous pouvons obtenir n’importe quelle version du noeud dont nous avons besoin et consulter la liste des versions installées avec Installez la version la plus récente et définissez-la comme version par défaut avec les éléments suivants: Le nœud est mis à jour et npm est inclus dans la transaction. Vous êtes maintenant prêt à rouler avec l'installation. Cloner le dépôt avec git dans un répertoire nommé Une fois le référentiel cloné, vous pouvez maintenant utiliser À ce stade, un Tout d'abord télécharger le kit de démarrage. Extrayez le zip et dans la racine créez un Dans cet exemple, React utilise Babel pour transformer le fichier JSX en JavaScript clair via le Create a new file at Now all you need to do is reference it in your HTML, so open up the Actualisez la page et vous verrez le Remarque: Certains navigateurs (par exemple, Chrome) ne chargeront pas le fichier, sauf s'il est servi via HTTP. Assurez-vous donc que vous utilisez un serveur local. Je recommande le projet browsersync. Vous pouvez également utiliser l'interface de ligne de commande (CLI) pour transformer votre JSX à l'aide des outils de ligne de commande babel. Ceci est facilement acquis via la commande npm: le Maintenant que babel est installé, faisons la traduction du Maintenant le dossier Maintenant que babel a généré le Donc, pour récapituler, avec babel, nous pouvons charger JSX directement dans un La génération de cette copie est effectuée sur la ligne de commande. Comme il s’agit là d’une tâche répétitive, il est vivement recommandé d’automatiser le processus à l’aide de la commande Yeoman est un outil très utile pour démarrer des projets rapidement avec un flux de travail et une configuration d'outils optimaux. L'idée est de vous laisser consacrer plus de temps au développement qu'à la configuration de la zone de travail du projet et à minimiser les tâches répétitives (sachez que RSI est la raison numéro un pour laquelle les codeurs arrêtent de coder). Donc, comme meilleure pratique, gagner du temps avec les outils et mettre en œuvre D.R.Y (ne vous répétez pas) dans votre vie quotidienne améliorera votre santé et votre efficacité, et vous laissera passer plus de temps à créer du code réel plutôt que de le configurer.. Il y a beaucoup d'échafaudages, de différentes saveurs pour différentes échelles de projet. Pour ce premier exemple, nous utiliserons le Remarque: Il s’agit d’une configuration à pile complète, qui est probablement excessive pour tous les petits projets. La raison pour laquelle j'ai choisi cet échafaudage est pour vous donner un environnement entièrement configuré, de sorte que vous puissiez voir comment le kit de démarrage se transforme en une application plus grande. Il y a un en-tête et un pied de page, et vous pouvez voir où iront les fonctions de connexion et d'enregistrement d'un utilisateur, bien qu'elles ne soient pas encore codées dans l'exemple.. Pour utiliser yeoman, installez-le d'abord, et si vous n'avez pas l'équivalent requis de yeoman Maintenant, installez l'échafaudage React avec: Maintenant, créez un répertoire pour votre projet et Enfin utiliser le Yeoman va maintenant créer les répertoires et les fichiers nécessaires; vous pourrez voir les mises à jour à ce sujet en ligne de commande. Avec l'échafaudage maintenant configuré, construisons notre projet: Par défaut on commence dans déboguer mode, et pour aller vivre nous ajoutons simplement le Vous verrez maintenant le démarrage de la construction et l'initialisation du webpack. Une fois cela fait, vous verrez la sortie du webpack vous donner des informations détaillées sur la construction et les URL auxquelles accéder. Accédez à votre application via les URL répertoriées à la fin de la sortie, avec votre navigateur par défaut à l'adresse http: // localhost: 3000. Pour accéder à l'interface d'administration du navigateur de synchronisation, accédez à http: // localhost: 3001. Remarque: vous devrez peut-être ouvrir le port de votre serveur pour le port de développement. Pour les utilisateurs Ubuntu / Debian avec Facebook fournit un outil en ligne si vous devez simplement convertir un extrait de votre code HTML en JSX.. Pour les besoins plus importants, il existe un outil sur Son utilisation via la ligne de commande est aussi simple que: Parce que Commençons à créer une liste de tâches de base afin que vous puissiez voir le fonctionnement de React. Avant de commencer, veuillez configurer votre IDE. Je recommande d'utiliser Atom. À l'invite bash, installez les linters pour React via apm: Remarque: la dernière version de Une fois cela fait, nous pouvons commencer à créer une liste de base dans l’échafaudage que nous avons créée à l’étape précédente avec Yeoman, pour vous montrer un exemple concret du flux de données.. Assurez-vous que votre serveur est démarré avec Tout d’abord, il existe trois fichiers de modèle de jade fournis dans cet échafaudage. Nous ne les utiliserons pas pour l'exemple, alors commençons par vider le La mise à jour est affichée instantanément, sans aucune actualisation. Il s’agit de la configuration du pack Web et de la navigation avec le navigateur fournie par l’échafaudage qui entre en vigueur.. Ensuite, ouvrez le répertoire des composants et créez un nouveau répertoire: Maintenant, à l'intérieur du Aussi, toujours à l'intérieur du Pour terminer, nous devons ajouter des données pour cette liste. Nous ferons cela à l'intérieur Maintenant, lorsque nous enregistrons, le pack Web sera reconstruit et Browsersync affichera les modifications dans votre navigateur. Regardez le code source pour voir comment il a été rendu.. Nous avons utilisé le générateur d'échafaudage Yeoman De là, nous avons édité le À l'intérieur Il est important de noter ici que React exige que tous les éléments itérés aient un identifiant unique fourni sous Pour afficher la liste, nous l'incluons à l'intérieur du À l'intérieur Maintenant le Chaque fois que nous passons une valeur avec l'attribut d'un composant, il est possible d'y accéder via Enfin, il convient de noter que cet exemple utilisait des composants étendus. Cela présente de nombreux avantages pour la structuration sémantique de votre code. Mais vous voudrez peut-être accéder à une approche plus simple, comme le font de nombreux autres exemples.. Donc au lieu de Cela nous conclut pour cette introduction à React. Vous devriez maintenant avoir une bonne compréhension de ce qui suit: Dans les prochaines parties, nous verrons comment utiliser davantage JSX, comment utiliser une base de données en tant que source de données persistante, et comment React fonctionne avec d'autres technologies Web populaires telles que PHP, Rails, Python et .NET..Qu'est-ce que JSX??
// className est utilisé dans JSX pour l'attribut de classe var fooDiv = ; // Render où div # example est notre espace réservé pour l'insertion ReactDOM.render (fooDiv, document.getElementById ('exemple'));
Installation de React
Utiliser le CDN de Facebook
Installation depuis NPM
réagir
et réact-dom
forfaits npm. Pour les installer sur votre système, exécutez la commande suivante à l’invite du terminal bash dans le répertoire de votre projet, ou créez un nouveau répertoire et CD
d'abord.$ npm install --save réagir réagir-dom $ browserify -t babelify main.js -o bundle.js
node_modules
annuaire.Installation à partir de Git Source
Les dépendances
version du noeud
et npm avec version npm
Mise à jour du nœud via NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | frapper
~ / .nvm
et ajoute la ligne source à votre profil (~ / .bash_profile
, ~ / .zshrc
ou ~ / .profile
).nvm
vous pouvez le faire via git
avec:git clone https://github.com/creationix/nvm.git ~ / .nvm && cd ~ / .nvm && git checkout 'git describe --abbrev = 0 --tags'
. ~ / .nvm / nvm.sh
~ / .bashrc
, ~ / .profile
, ou ~ / .zshrc
fichiers respectivement de l'avoir automatiquement source lors de la connexion.Utiliser NVM
liste de noeuds
et ceux disponibles avec noeud ls-remote
. Nous avons besoin d’une version supérieure à 4.0.0 pour fonctionner avec React.$ nvm install 4.2.1 $ nvm alias default 4.2.1 default -> 4.2.1 (-> v4.2.1) $ nvm use default Utilisez maintenant le noeud v4.2.1 (npm v2.14.7)
Construire Réagir De Git Source
réagir
sur votre système avec:git clone https://github.com/facebook/react.git
grognement
pour construire React:# grunt-cli est requis par grunt; vous l'avez peut-être déjà installé, mais assurons-vous que vous installez avec $ sudo npm suivant -g grunt-cli $ npm install $ grunt build
construire/
Le répertoire a été rempli avec tout ce dont vous avez besoin pour utiliser React. Regardez le /exemples
répertoire pour voir quelques exemples de base de travail!Utiliser le kit de démarrage
helloworld.html
, ajoutant ce qui suit:
.
Using a Separate JavaScript File
src/helloworld.js
and place the following code inside it:ReactDOM.render(
Hello, world!
, document.getElementById('example') ); helloworld.html
and load the script you just created using a script
tag with a text/babel
type attribute as so:
helloworld.js
rendu par babel.Transformation hors ligne
$ sudo npm install --global babel
--global
ou -g
flag for short installera globalement le paquet babel pour qu'il soit disponible partout. C'est une très bonne pratique d'utilisation de Node pour plusieurs projets et outils de ligne de commande..helloworld.js
nous venons de créer à l'étape précédente. A l'invite de commande du répertoire racine où vous avez dézippé le kit de démarrage, exécutez:$ babel src --watch --out-dir build
build / helloworld.js
sera généré automatiquement chaque fois que vous apportez un changement! Si vous êtes intéressé, lisez la documentation CLI de Babel pour approfondir vos connaissances..build / helloworld.js
, qui ne contient que du code JavaScript simple, mettez à jour le code HTML sans balises de script compatibles Babel.
scénario
tag via le texte / babel
attribut de type. C'est utile pour le développement, mais pour la production, nous pouvons fournir un fichier JavaScript généré pouvant être mis en cache sur la machine locale de l'utilisateur..--regarder
drapeau. Ou vous pouvez aller plus loin et utiliser Webpack
et Browsersync
pour automatiser entièrement votre flux de travail de développement. Pour le faire de la manière la plus simple possible, nous pouvons automatiser la configuration d'un nouveau projet avec un générateur Yeoman..Installation avec un échafaudage Yeoman
réagir à plein
échafaudages des générateurs Yeoman; vous pouvez voir une démonstration de ce à quoi ressemble le résultat final.Usage
gorgée
, tonnelle
et grunt-cli
, installez-les comme suit:$ sudo npm installer -g yo bower grunt-cli gulp
$ sudo npm installer -g générateur-réagir-fullstack
CD
à cela:$ mkdir react-project $ cd rea-project
yo
commande avec le générateur d'échafaudage React-fullstack pour créer votre application de réaction dans le répertoire:$ yo réagit-fullstack
$ npm start
-- Libération
drapeau, par exemple. npm run start - release
.ufw
, faire ce qui suit:$ ufw permettre 3001 / tcp $ ufw permettre 3000 / tcp
Conversion de votre site existant en JSX
npm
pour celui nommé htmltojsx
. Téléchargez-le avec:npm installer htmltojsx
$ htmltojsx -c MyComponent existants_code.htm
htmltojsx
est un module de nœud, vous pouvez également l'utiliser directement dans le code, par exemple:var HTMLtoJSX = require ('htmltojsx'); var converter = new HTMLtoJSX (createClass: true, outputClassName: 'HelloWorld'); var output = converter.convert ('
Exemple de liste
apm install linter-linter-eslint react Installation de linter dans /Users/tom/.atom/packages ✓ Installation de linter-eslint dans /Users/tom/.atom/packages ✓ Installation de react à /Users/tom/.atom/packages ✓
linter-eslint
mon MacBook Pro était très lent, je l’ai donc désactivé.npm start
, et maintenant commençons à faire des changements.index.jade
fichier donc c'est juste un fichier vide. Une fois le fichier sauvegardé, vérifiez votre navigateur et la sortie du terminal..$ cd composants $ mkdir UserList
Liste d'utilisateur
répertoire, créer un package.json
fichier avec les éléments suivants:"name": "UserList", "version": "0.0.0", "private": true, "main": "./UserList.js"
Liste d'utilisateur
répertoire, créez le UserList.js
déposer et ajouter ce qui suit:// Import React import React, PropTypes, Component depuis 'react'; // Création de la classe de composants UserList UserList extend Component // La méthode principale render est appelée dans tous les composants pour display render () // Ne commentez pas ci-dessous pour voir l'objet dans la console //console.log(this.props.data ) // Itère les données fournies ici var list = this.props.data.map (function (item) return
liste
) // Rendez-le accessible au reste de l'application, export User default par défaut; composants / ContentPage / ContentPage.js
. Ouvrez ce fichier et définissez le contenu comme suit:/ *! Kit de démarrage React | Licence MIT | http://www.reactstarterkit.com/ * / import React, PropTypes, Component de 'react'; importer les styles de './ContentPage.css'; importer withStyles à partir de '… /… / décorators / withStyles'; importer UserList de '… / UserList'; // Ici nous importons le composant UserList que nous avons créé @withStyles (styles), classe ContentPage étend Component static propTypes = chemin: PropTypes.string.isRequired, contenu: PropTypes.string.isRequired, title: PropTypes.string,; static contextTypes = onSetTitle: PropTypes.func.isRequired,; render () // Définit des données pour la liste var listData = [premier: 'Peter', dernier: 'Tosh', premier: 'Robert', dernier: 'Marley', premier: 'Bunny' , dernier: 'Wailer',]; this.context.onSetTitle (this.props.title); revenir (
this.props.title
// Utiliser le composant UserList en tant que JSX Résumé
réagir à plein
démarrer une application Web React basée sur le kit de démarrage. Pour une explication plus détaillée de la disposition des fichiers et des répertoires, consultez le fichier Lisez-moi dans le dossier de démarrage du réacteur git.index.jade
le fichier a donc été annulé et a commencé à créer notre propre vue, créant ainsi un nouveau composant nommé Liste d'utilisateur
.composants / UserList / UserList.js
nous définissons comment la liste sera rendue avec:var liste = this.props.data.map (function (item) return
clé
attribut.ContentPage.js
déposer avec importer UserList de '… / UserList';
et définir des données de test avec: var listData = [premier: 'Peter', dernier: 'Tosh', premier: 'Robert', dernier: 'Marley', premier: 'Bunny', dernier: 'Wailer',];
ContentPage.js
nous appelons le Liste d'utilisateur
composant avec le JSX
.Liste d'utilisateur
composant peut accéder à la Les données
attribut via this.props.data
.this.props
. Vous pouvez également définir le type de données à fournir à l’aide de la touche propTypes
variable statique dans sa classe.Composants étendus et syntaxe React.createClass
class ComponentName étend le composant
que vous avez déjà vu dans ce didacticiel, vous créez une classe React avec la syntaxe suivante, par exemple:var MyListItem = React.createClass (render: function () return
this.props.results.map (function (result)) return
) );