С помощью 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
.
Этот пакет вдохновлен реагирующими рельсами.