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.