g3n1us / laravel-react-sync
Coordinate React frontends with a Laravel controller for updates and maintaining a universal frontend and backend application state
Installs: 249
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 1
Open Issues: 0
Language:JavaScript
Type:package
Requires
- php: ^7.2
- doctrine/dbal: ^2.9
- g3n1us/laravel-model-api: dev-master
- laravel/framework: ^6.0
- laravel/helpers: ^1.1
- laravel/ui: ^1.0
This package is auto-updated.
Last update: 2024-11-16 11:32:03 UTC
README
Make your React components and Laravel models play nicely!
Installation
Install using Composer:
composer require g3n1us/laravel-react-sync
Note: The next step will be unnecessary in most cases
If using Laravel 5.5 or later and autodiscovery is not disabled, the package will be discovered and ready to use automatically. If NOT, then add the service provider to the list of providers in config/app.php
.
'providers' => [ /* * Application Service Providers... */ G3n1us\LaravelReactSync\LaravelReactSyncServiceProvider::class, ]
Run react-sync
Preset
If this you are installing the library on a fresh Laravel installation, run the preset
Artisan command to complete installation
Note: If this is NOT a fresh installation, do no run this command. Instead, you can run
php artisan vendor:publish
to copy the necessary files into your resources directory.
php artisan preset react-sync
Follow the onscreen instructions, and run:
npm install && npm run dev
Installation is complete!
Usage
ReactSync
provides two base components to be used in the place of the standard React.Component
. The first MasterComponent
is hydrated with the Laravel view's data. This is set via an include
d Blade template in the top of your application's markup. The provides a global object that contains application data that maps to the data that is part of the context of the Blade view. Additionally, this object contains objects and methods that provide access to the underlying Laravel application's data, such as the Request
, defined Guard
s, the Route
and the authenticated user.
This data can be used in components extending this class. Changes set via a traditional web form (or form fields) will mutate your state
and trigger a render as you would expect in React.
Alternately, the ReactSyncAppData.page_data
object can be mutated manually to trigger a refresh, as this object is set as the components initial state
.
GH Pages URL https://g3n1us.github.io/laravel-react-sync/