paint-brush
How to Add React.js to Laravelby@leyoncode
940 reads
940 reads

How to Add React.js to Laravel

by LeyonJune 23rd, 2022
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

In this article we'll see how to add ReactJS to your Laravel project.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - How to Add React.js to Laravel
Leyon HackerNoon profile picture

Initial Setup

Assuming you have Composer, NodeJs and PHP installed, run these in the terminal

  • composer create-project --prefer-dist laravel/laravel my-app // “my-app” is your app’s name
  • composer require laravel/ui //add laravel-ui package to laravel project
  • php artisan ui react //this will add react to your application (with bootstrap also I think)
  • npm install //this will download all the dependencies for ReactJS

Post Setup

After you have added react to your laravel app, it still won’t show your react app when you run ‘php artisan serve’ . You now need to make changes to the default welcome.blade.php file under your resources/views. This welcome.blade.php file is called in routes/web.php file. We’ll leave this alone.

Configure welcome.blade.php

First delete all the default code in the body, remove all styles tags, just keep the minimum html structure.


Add this line to load your welcome script

<script src="{{ asset('js/app.js') }}" defer></script>

Then add a div in the body with any id. This is where we will inject our React code.

<div id="react-root"> </div>

Configure React

Now it is time to modify the default React files. The app.js will import the base React file.

In your case you should see it importing an Example.js in the components folder.

Rename the Example.js to Main.js, rename the file, go inside the file and rename all instances of Example to Main.

Then remove the few code under after the ‘export default Main‘, and add this instead:


if (document.getElementById('react-root')) {
    ReactDOM.render(
        <React.StrictMode>
            <Main />
        </React.StrictMode>,
        document.getElementById('react-root'));
}

Run

To run the app now, you will have to compile the React code and run Laravel.

npm run dev && php artisan serve

Conclusion

Now you should be able to use React.js with Laravel. You should use Laravel as if you are building an API with it, and use React like a separate frontend and call your Laravel API using Axios.