Con react-laravel
podrás usar componentes ReactJS directamente desde tus vistas Blade, con renderizado opcional del lado del servidor, y usarlos en el lado del cliente con React gracias al JavaScript discreto.
Es importante saber que react-laravel
tiene una dependencia indirecta de la extensión PHP v8js.
Puedes ver cómo instalarlo aquí: cómo instalar v8js.
Establece la minimum-stability
de tu composer.json
en dev
y agrega esto:
"estabilidad mínima": "dev"
Luego ejecuta:
$ compositor requiere talyssonoc/react-laravel:0.11
Después de eso, debes agregar esto a tus proveedores en el archivo config/app.php
de tu aplicación Laravel:
'ReaccionarReactServiceProvider'
Y luego ejecuta:
proveedor artesanal de php: publicar
Y el archivo react.php
estará disponible en la carpeta config
de su aplicación.
Después de la instalación y configuración, podrá utilizar la directiva @react_component
en sus vistas.
La directiva @react_component
acepta 3 argumentos:
@react_component(<nombrecomponente>[, accesorios, opciones]) //ejemplo @react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ]) // ejemplo usando el componente con espacio de nombres @react_component('Acme.Message', [ 'title' => 'Hola mundo' ], [ 'prerender' => true ])
componentName
: es el nombre de la variable global que contiene su componente. Cuando utilice componentes con espacios de nombres, puede utilizar notación de puntos para el nombre del componente.
props
: asociativo de los props
que se pasarán a su componente
options
: conjunto asociativo de opciones que puede pasar a react-laravel
:
prerender
: Le dice a reaccionar-laravel que renderice su componente en el lado del servidor y luego simplemente lo monte en el lado del cliente. Por defecto es verdadero .
tag
: la etiqueta del elemento que contendrá su componente. El valor predeterminado es 'div' .
atributos html : cualquier otro atributo HTML válido que se agregará al elemento contenedor de su componente. Ejemplo: 'id' => 'my_component'
.
Todos sus componentes deben estar dentro de public/js/components.js
(puede configurarlo, ver más abajo) y ser globales.
Debes incluir react.js
, react-dom.js
y react_ujs.js
(en este orden) en tu vista. Puedes concatenar estos archivos usando laravel-elixir.
react-laravel
proporciona una instalación de ReactJS y el archivo react_us.js
, estarán en la carpeta public/vendor/react-laravel
después de instalar react-laravel
y ejecutar:
$ php proveedor artesanal: publicar --force
Para usar los archivos proporcionados por react-laravel
y su archivo components.js
, agregue esto a su vista:
<script src="{{ activo('vendor/react-laravel/react.js') }}"></script> <script src="{{ activo('vendor/react-laravel/react-dom.js') }}"></script> <script src="{{ activo('js/components.js') }}"></script> <script src="{{ activo('vendor/react-laravel/react_ujs.js') }}"></script>
Si va a utilizar una versión diferente a la proporcionada por reaccionar-laravel (ver composer.json
), debe configurarla (ver más abajo).
Puede cambiar la configuración para react-laravel
en el archivo 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' => ['ruta_para_archivo_que_contiene_sus_componentes.js'] ];
Todos ellos son opcionales.
source
: el valor predeterminado es public/vendor/react-laravel/react.js
.
dom-source
: el valor predeterminado es public/vendor/react-laravel/react-dom.js
.
dom-server-source
: el valor predeterminado es public/vendor/react-laravel/react-dom-server.js
.
components
: el valor predeterminado es public/js/components.js
. Aquí se pueden especificar varios archivos de componentes.
Su(s) archivo(s) components.js
también deben incluirse en su vista, y todos sus componentes deben estar en el objeto window
.
Este paquete está inspirado en reaccionar-rails.