С помощью react-laravel вы сможете использовать компоненты ReactJS прямо из представлений Blade с дополнительным рендерингом на стороне сервера и использовать их на стороне клиента с React благодаря ненавязчивому JavaScript.
Важно знать, что у react-laravel есть косвенная зависимость от расширения PHP v8js.
Вы можете посмотреть, как его установить здесь: как установить v8js.
Установите minimum-stability вашего composer.json на dev , добавив следующее:
"минимальная стабильность": "dev"
Затем запустите:
$композитору требуется talyssonoc/react-laravel:0.11
После этого вам следует добавить это к своим провайдерам в файле config/app.php вашего приложения Laravel:
'Реактреактсервиспровидер'
И затем запустите:
Поставщик PHP ремесленника: опубликовать
Файл react.php будет доступен в папке config вашего приложения.
После установки и настройки вы сможете использовать директиву @react_component в своих представлениях.
Директива @react_component принимает 3 аргумента:
@react_comComponent(<имя_компонента>[, реквизит, параметры]) //пример
@react_comComponent('Message', [ 'title' => 'Hello, World' ], [ 'prerender' => true ]) // пример использования компонента в пространстве имен
@react_comComponent('Acme.Message', [ 'title' => 'Привет, мир'], [ 'prerender' => true]) componentName : имя глобальной переменной, содержащей ваш компонент. При использовании компонентов в пространстве имен вы можете использовать точечную нотацию для имени компонента.
props : Ассоциатив props , который будет передан вашему компоненту.
options : Ассоциативный массив параметров, которые вы можете передать в react-laravel :
prerender : сообщает реагированию-laravel выполнить рендеринг вашего компонента на стороне сервера, а затем просто смонтировать его на стороне клиента. По умолчанию true .
tag : Тег элемента, который будет содержать ваш компонент. По умолчанию «div» .
Атрибуты html : любой другой допустимый атрибут HTML, который будет добавлен к элементу-оболочке вашего компонента. Пример: 'id' => 'my_component' .
Все ваши компоненты должны находиться внутри public/js/components.js (вы можете настроить его, см. ниже) и быть глобальными.
Вы должны включить в свое представление react.js , react-dom.js и react_ujs.js (в этом порядке). Вы можете объединить эти файлы вместе, используя laravel-elixir.
react-laravel предоставляет установку ReactJS и файл react_us.js , они будут в папке public/vendor/react-laravel после того, как вы установите react-laravel и запустите:
$ php ремесленник поставщика:publish --force
Чтобы использовать файлы, предоставленные react-laravel , и ваш components.js , добавьте это в свое представление:
<script src="{{ assets('vendor/react-laravel/react.js') }}"></script>
<script src="{{ assets('vendor/react-laravel/react-dom.js') }}"></script>
<script src="{{ assets('js/comComponents.js') }}"></script>
<script src="{{ assets('vendor/react-laravel/react_ujs.js') }}"></script> Если вы будете использовать версию, отличную от той, которую предоставил реакции-laravel (см. composer.json ), вам необходимо настроить ее (см. ниже).
Вы можете изменить настройки react-laravel в файле 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','comComponents' => [ 'путь_для_файла_содержащего_ваши_компоненты.js'] ];
Все они не являются обязательными.
source : по умолчанию — public/vendor/react-laravel/react.js .
dom-source : по умолчанию — public/vendor/react-laravel/react-dom.js .
dom-server-source : по умолчанию — public/vendor/react-laravel/react-dom-server.js .
components : по умолчанию — public/js/components.js . Здесь можно указать несколько файлов компонентов.
Ваши файлы components.js также должны быть включены в ваше представление, и все ваши компоненты должны находиться в объекте window .
Этот пакет вдохновлен реагирующими рельсами.