Avec react-laravel
vous pourrez utiliser les composants ReactJS directement à partir de vos vues Blade, avec un rendu côté serveur en option, et les utiliser côté client avec React grâce à un JavaScript discret.
Il est important de savoir que react-laravel
a une dépendance indirecte de l'extension PHP v8js.
Vous pouvez voir comment l'installer ici : comment installer v8js.
Définissez la minimum-stability
de votre composer.json
sur dev
, en ajoutant ceci :
"stabilité minimale": "dev"
Puis exécutez :
$ composer nécessite talyssonoc/react-laravel:0.11
Après cela, vous devez ajouter ceci à vos fournisseurs dans le fichier config/app.php
de votre application Laravel :
'ReactReactServiceProvider'
Et puis exécutez :
fournisseur artisanal php : publier
Et le fichier react.php
sera disponible dans le dossier config
de votre application.
Après l'installation et la configuration, vous pourrez utiliser la directive @react_component
dans vos vues.
La directive @react_component
accepte 3 arguments :
@react_component(<componentName>[, props, options]) //exemple @react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ]) // exemple utilisant un composant avec espace de noms @react_component('Acme.Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ])
componentName
: est le nom de la variable globale qui contient votre composant. Lorsque vous utilisez des composants avec espace de noms, vous pouvez utiliser la notation par points pour le nom du composant.
props
: associatif des props
qui seront transmis à votre composant
options
: Tableau associatif d'options que vous pouvez transmettre au react-laravel
:
prerender
: demande à React-laravel de restituer votre composant côté serveur, puis de le monter simplement côté client. La valeur par défaut est true .
tag
: La balise de l'élément qui contiendra votre composant. Par défaut, 'div' .
Attributs HTML : tout autre attribut HTML valide qui sera ajouté à l'élément wrapper de votre composant. Exemple : 'id' => 'my_component'
.
Tous vos composants doivent se trouver dans public/js/components.js
(vous pouvez le configurer, voir ci-dessous) et être globaux.
Vous devez inclure react.js
, react-dom.js
et react_ujs.js
(dans cet ordre) dans votre vue. Vous pouvez concaténer ces fichiers ensemble en utilisant laravel-elixir.
react-laravel
fournit une installation ReactJS et le fichier react_us.js
, ils se trouveront dans le dossier public/vendor/react-laravel
après avoir installé react-laravel
et exécuté :
$ php fournisseur artisanal :publier --force
Pour utiliser les fichiers fournis par react-laravel
et votre fichier components.js
, ajoutez ceci à votre vue :
<script src="{{ actif('vendor/react-laravel/react.js') }}"></script> <script src="{{ actif('vendor/react-laravel/react-dom.js') }}"></script> <script src="{{ actif('js/components.js') }}"></script> <script src="{{ actif('vendor/react-laravel/react_ujs.js') }}"></script>
Si vous utilisez une version différente de celle fournie par react-laravel (voir composer.json
), vous devez la configurer (voir ci-dessous).
Vous pouvez modifier les paramètres pour react-laravel
dans le fichier config/react.php
:
return ['source' => 'path_for_react.js','dom-source' => 'path_for_react-dom.js','dom-server-source' => 'path_for_react-dom-server.js','components' => [ 'path_for_file_containing_your_components.js' ] ];
Tous sont facultatifs.
source
: la valeur par défaut est public/vendor/react-laravel/react.js
.
dom-source
: la valeur par défaut est public/vendor/react-laravel/react-dom.js
.
dom-server-source
: la valeur par défaut est public/vendor/react-laravel/react-dom-server.js
.
components
: la valeur par défaut est public/js/components.js
. Plusieurs fichiers de composants peuvent être spécifiés ici.
Votre ou vos fichiers components.js
doivent également être inclus dans votre vue, et tous vos composants doivent se trouver dans l'objet window
.
Ce package est inspiré de React-Rails.