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.