Com react-laravel você poderá usar componentes ReactJS diretamente de suas visualizações Blade, com renderização opcional no lado do servidor, e usá-los no lado do cliente com React devido ao JavaScript discreto.
É importante saber que o react-laravel tem uma dependência indireta da extensão PHP v8js.
Você pode ver como instalá-lo aqui: como instalar o v8js.
Defina a minimum-stability do seu composer.json como dev , adicionando isto:
"estabilidade mínima": "dev"
Então execute:
$ compositor requer talyssonoc/react-laravel:0.11
Depois disso, você deve adicionar isso aos seus provedores no arquivo config/app.php do seu aplicativo Laravel:
'ReactReactServiceProvider'
E então execute:
fornecedor de artesão php: publicar
E o arquivo react.php estará disponível na pasta config do seu aplicativo.
Após a instalação e configuração, você poderá usar a diretiva @react_component em suas visualizações.
A diretiva @react_component aceita 3 argumentos:
@react_component(<componentName>[, adereços, opções]) //exemplo
@react_component('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ]) // exemplo usando componente com namespace
@react_component('Acme.Message', [ 'title' => 'Olá, mundo' ], [ 'prerender' => true ]) componentName : é o nome da variável global que contém seu componente. Ao usar componentes com namespace, você pode usar a notação de ponto para o nome do componente.
props : Associativo dos props que serão passados para seu componente
options : array associativo de opções que você pode passar para o react-laravel :
prerender : Diz ao react-laravel para renderizar seu componente no lado do servidor e depois montá- lo no lado do cliente. Padrão para true .
tag : A tag do elemento que conterá seu componente. O padrão é 'div' .
atributos html : Qualquer outro atributo HTML válido que será adicionado ao elemento wrapper do seu componente. Exemplo: 'id' => 'my_component' .
Todos os seus componentes devem estar dentro de public/js/components.js (você pode configurá-lo, veja abaixo) e ser globais.
Você deve incluir react.js , react-dom.js e react_ujs.js (nesta ordem) em sua visualização. Você pode concatenar esses arquivos usando laravel-elixir.
react-laravel fornece uma instalação do ReactJS e o arquivo react_us.js , eles estarão na pasta public/vendor/react-laravel depois de instalar react-laravel e executar:
$ php artesão fornecedor:publish --force
Para usar os arquivos fornecidos pelo react-laravel e seu arquivo components.js , adicione isto à sua view:
<script src="{{asset('vendor/react-laravel/react.js') }}"></script>
<script src="{{asset('vendor/react-laravel/react-dom.js') }}"></script>
<script src="{{asset('js/components.js') }}"></script>
<script src="{{asset('vendor/react-laravel/react_ujs.js') }}"></script> Se você usar uma versão diferente daquela fornecida pelo react-laravel (veja composer.json ), você terá que configurá-la (veja abaixo).
Você pode alterar as configurações do react-laravel no arquivo 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','componentes' => [ 'caminho_para_arquivo_contendo_seus_componentes.js'] ];
Todos eles são opcionais.
source : o padrão é public/vendor/react-laravel/react.js .
dom-source : o padrão é public/vendor/react-laravel/react-dom.js .
dom-server-source : o padrão é public/vendor/react-laravel/react-dom-server.js .
components : o padrão é public/js/components.js . Vários arquivos de componentes podem ser especificados aqui.
Seu(s) arquivo(s) components.js também devem ser incluídos em sua visualização e todos os seus componentes devem estar no objeto window .
Este pacote é inspirado no react-rails.