Skip to content
  • Github
  • Facebook
  • twitter
  • About Us
  • Contact Us
  • Privacy Policy
  • Terms & Conditions
  • Site Map

XpertPhp

Expertphp Is The Best Tutorial For Beginners

  • Home
  • Javascript
    • Jquery
    • React JS
    • Angularjs
    • Angular
    • Nodejs
  • Codeigniter
  • Laravel
  • Contact Us
  • About Us
  • Live Demos
Laravel 8 Vue JS Infinite Scroll Load More Example

Laravel 8 Vue JS Infinite Scroll Load More Example

Posted on December 15, 2020December 15, 2022 By XpertPhp

In this article, we will share with you how to create infinite scroll pagination using vue js with laravel 8(Laravel 8 Vue JS Infinite Scroll Load More Example).

sometimes we need to create a mouse scroll or infinite scroll pagination, like Facebook messenger. we give you a simple example of vuejs infinite loading data using laravel.

In this example, we are creating a simple example of Vue JS and laravel. so you can see the following steps.

Overview

Step 1: Install Laravel 8
Step 2: Setting Database Configuration
Step 3: Create Routes
Step 4: Create Controller
Step 5: Install Vue Js dependency
Step 6: Create Component and update app.js
Step 7: Update Blade Files
Step 8: Run Our Laravel Application

Step 1: Install Laravel 8

We are going to install laravel 8, so first open the command prompt or terminal and go to xampp htdocs folder directory using the command prompt. after then run the below command for laravel 8 install.

PHP
1
composer create-project --prefer-dist laravel/laravel laravel8_vue

Step 2: Setting Database Configuration

After the complete installation of laravel. we have to database configuration. now we will open the .env file and change the database name, username, password in the .env file. See below changes in a .env file.

PHP
1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Enter_Your_Database_Name(laravel8_vue)
DB_USERNAME=Enter_Your_Database_Username(root)
DB_PASSWORD=Enter_Your_Database_Password(root)

Step 3: Create Routes
Add the following route code in the “routes/web.php” file.

1
2
3
use App\Http\Controllers\UserController;
 
Route::get('/users', 'UserController@index');

Step 4: Create Controller
Here below command help to create the controller and model.

1
php artisan make:controller UserController

UserController.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Models\User;
use Illuminate\Support\Facades\Hash;
class UserController extends Controller
{
     /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
$data = User::orderBy('id')->paginate(10);
        return response()->json($data);
    }
}
 
?>

Step 5: Install Vue Js dependency
in this step, go to the project directory using the command prompt. after then run the below command for Install Vue Js dependency.

1
npm install

Install vue-resource

1
npm install vue-resource

Install vue-infinite-loading

1
npm install vue-infinite-loading

Step 6: Create Component and update app.js
resources/js/components/UserComponent.vue

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<template>
    <div class="container" style="margin-top:50px;">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header"><strong>User List</strong></div>
                    <div class="card-body">
                        <div>
                          <p v-for="item in list" :key="item.id">
<span>{{item.name}}</span>   <span>{{item.email}}</span>
                          </p>
                          <infinite-loading @distance="1" @infinite="infiniteHandler"></infinite-loading>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>
    export default {
      
        data() {
            return {
              list: [],
              page: 1,
            };
          },
          methods: {
            infiniteHandler($state) {
                this.$http.get('/users?page='+this.page)
                    .then(response => {
                        return response.json();
                    }).then(data => {
                        $.each(data.data, (key, value)=> {
                                this.list.push(value);
                        });
                    $state.loaded();
 
                    });
                this.page = this.page + 1;
            },
          },
    }
</script>

resources/js/app.js

1
2
3
4
5
6
7
8
require('./bootstrap');
window.Vue = require('vue');
Vue.use(require('vue-resource'));
Vue.component('user-component', require('./components/UserComponent.vue').default);
Vue.component('InfiniteLoading', require('vue-infinite-loading'));
const app = new Vue({
    el: '#app',
});

Step 7: Update Blade Files
So finally, first we need to create the app.blade.php file in the “resources/views/layouts/” and Update the welcome.blade.php file in the “resources/views/” directory. so you can see the below code.
resources/views/layouts/app.blade.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="csrf-token" content="{{ csrf_token() }}">
    <title>{{ config('app.name', 'Laravel') }}</title>
    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
    <title>User</title>
</head>
<body>
    
    <div id="app">
 
    <div class="py-4">
        @yield('content')
    </div>
    
    </div>
    <script src="{{ mix('js/app.js') }}" defer></script>
</body>
</html>

welcome.blade.php

1
2
3
4
5
6
7
@extends('layouts.app')
 
@section('content')
 
  <user-component></user-component>
          
@endsection

Step 8: Run Our Laravel Application
We can start the server and run this example using the below command.

1
2
3
npm run dev
//or
npm run watch

Now we will run our example using the below Url in the browser.

1
http://127.0.0.1:8000/user

Laravel Tags:Laravel 8

Post navigation

Previous Post: Laravel 8 Vue JS Axios Post Request Example Tutorial
Next Post: Laravel 8 Vue JS Flash Message Example Tutorial

Latest Posts

  • Laravel 12 Ajax CRUD Example
  • Laravel 12 CRUD Example Tutorial
  • How to Create Dummy Data in Laravel 11
  • Laravel 11 Yajra Datatables Example
  • Laravel 11 Ajax CRUD Example
  • Laravel 11 CRUD Example Tutorial
  • Laravel 10 Ajax CRUD Example Tutorial
  • Laravel 10 CRUD Example Tutorial
  • How to disable button in React js
  • JavaScript Interview Questions and Answers

Tools

  • Compound Interest Calculator
  • Hex to RGB Color Converter
  • Pinterest Video Downloader
  • Birthday Calculator
  • Convert JSON to PHP Array Online
  • JavaScript Minifier
  • CSS Beautifier
  • CSS Minifier
  • JSON Beautifier
  • JSON Minifier

Categories

  • Ajax
  • Angular
  • Angularjs
  • Bootstrap
  • Codeigniter
  • Css
  • Htaccess
  • Interview
  • Javascript
  • Jquery
  • Laravel
  • MongoDB
  • MySql
  • Nodejs
  • Php
  • React JS
  • Shopify Api
  • Ubuntu

Tags

angular 10 tutorial angular 11 ci tutorial codeigniter 4 image upload Codeigniter 4 Tutorial codeigniter tutorial CodeIgniter tutorial for beginners codeigniter with mysql crud operation eloquent relationships file upload File Validation form validation Image Upload jQuery Ajax Form Handling jquery tutorial laravel 6 Laravel 6 Eloquent Laravel 6 Model laravel 6 relationship laravel 6 relationship eloquent Laravel 6 Routing laravel 7 Laravel 7 Eloquent laravel 7 routing laravel 7 tutorial Laravel 8 laravel 8 example laravel 8 tutorial laravel 9 example laravel 9 tutorial Laravel Framework laravel from scratch laravel social login learn jquery nodejs pagination payment gateway php with mysql react js example react js tutorial send mail validation wysiwyg editor wysiwyg html editor

Copyright © 2018 - 2025,

All Rights Reserved Powered by XpertPhp.com