Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use React Router with Laravel?

I needing use React Router with a Laravel project.

But when I create router on the React Router and try access, Laravel accuse Route not exist error.

How to can I use React Router to manager Laravel project routes?

render((     <Router history={browserHistory}>         <Route path="/" component={App}/>         <Route path="/profile" component={Profile}/> // this route I trying access     </Router> ), document.getElementById('root')); 
like image 642
Lai32290 Avatar asked Nov 21 '16 12:11

Lai32290


People also ask

Can react and Laravel be used together?

It's still possible and very straightforward to set up Vue or React with a Laravel project. In this article, I'll walk you through the process of bootstrapping a brand new Laravel project and integrating React with it so all Laravel developers, as well as React.

How install Laravel With react JS?

It's a straightforward and easy way to install React JS using the Laravel UI composer package. Laravel UI package provides a way to install basic bootstrap, react and react setup, and Vue js or angular js. They also offer auth scaffold for login and registration with all of those javascript frameworks or libraries.


1 Answers

Create a route that maps everything to one controller, like so:

Route::get('/{path?}', [     'uses' => 'ReactController@show',     'as' => 'react',     'where' => ['path' => '.*'] ]); 

Then in your controller, just show the HTML page that contains the react root document:

class ReactController extends Controller {     public function show () {         return view('react');     } } 

Then do everything as normal with react router. Seems to work well for me.


Update for Laravel 5.5 If your controller only returns a view (like in the example above), you can replace all of the above code with this in your routes file:

Route::view('/{path?}', 'path.to.view')      ->where('path', '.*')      ->name('react'); 
like image 100
Jake Taylor Avatar answered Sep 19 '22 20:09

Jake Taylor