当前位置:首页 > VUE

Springboot整合vue实现分页

2026-02-24 04:50:36VUE

SpringBoot 整合 Vue 实现分页

后端实现 (SpringBoot)

  1. 创建分页查询接口 在 Controller 中定义一个接口,接收页码和每页大小参数,返回分页数据。

    @GetMapping("/api/users")
    public Page<User> getUsers(
            @RequestParam(defaultValue = "1") int page,
            @RequestParam(defaultValue = "10") int size) {
        Pageable pageable = PageRequest.of(page - 1, size);
        return userRepository.findAll(pageable);
    }
  2. 添加分页依赖 确保项目中包含 Spring Data JPA 依赖,用于支持分页功能。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
  3. 配置跨域支持 由于前端和后端可能运行在不同端口,需要配置跨域支持。

    Springboot整合vue实现分页

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/")
                    .allowedOrigins("*")
                    .allowedMethods("*");
        }
    }

前端实现 (Vue)

  1. 安装 axios 使用 axios 进行 HTTP 请求。

    npm install axios
  2. 创建分页组件 在 Vue 组件中实现分页逻辑和数据获取。

    Springboot整合vue实现分页

    <template>
      <div>
        <table>
          <tr v-for="user in users" :key="user.id">
            <td>{{ user.name }}</td>
          </tr>
        </table>
        <div>
          <button @click="prevPage" :disabled="currentPage === 1">上一页</button>
          <span>第 {{ currentPage }} 页</span>
          <button @click="nextPage" :disabled="currentPage === totalPages">下一页</button>
        </div>
      </div>
    </template>
    
    <script>
    import axios from 'axios';
    
    export default {
      data() {
        return {
          users: [],
          currentPage: 1,
          totalPages: 0,
          pageSize: 10
        };
      },
      methods: {
        fetchUsers() {
          axios.get(`/api/users?page=${this.currentPage}&size=${this.pageSize}`)
            .then(response => {
              this.users = response.data.content;
              this.totalPages = response.data.totalPages;
            });
        },
        prevPage() {
          if (this.currentPage > 1) {
            this.currentPage--;
            this.fetchUsers();
          }
        },
        nextPage() {
          if (this.currentPage < this.totalPages) {
            this.currentPage++;
            this.fetchUsers();
          }
        }
      },
      created() {
        this.fetchUsers();
      }
    };
    </script>
  3. 配置代理 在开发环境中配置代理,避免跨域问题。

    // vue.config.js
    module.exports = {
      devServer: {
        proxy: {
          '/api': {
            target: 'http://localhost:8080',
            changeOrigin: true
          }
        }
      }
    };

前后端联调

  1. 启动 SpringBoot 后端应用
  2. 启动 Vue 前端开发服务器
  3. 访问前端页面,测试分页功能是否正常工作

注意事项

  • 确保后端接口返回的数据格式与前端期望的一致
  • 分页参数传递时注意页码的偏移量(后端通常从0开始,前端通常从1开始)
  • 在生产环境中应移除宽松的跨域配置,改为精确的域名限制

分享给朋友:

相关文章

vue实现小说分页

vue实现小说分页

实现小说分页功能 Vue.js可以通过计算属性、动态渲染和分页逻辑实现小说分页功能。以下是具体实现方法: 数据准备 需要将小说内容存储为字符串或数组格式,建议按章节拆分: data() { r…

vue 分页如何实现

vue 分页如何实现

实现 Vue 分页的几种方法 使用 Element UI 分页组件 Element UI 提供了现成的分页组件 el-pagination,适合快速集成。安装 Element UI 后,直接引入组件并…

vue分页如何实现

vue分页如何实现

实现Vue分页的方法 使用Element UI的分页组件 安装Element UI库后,可以直接使用其分页组件。需要在Vue组件中引入el-pagination,并通过v-model绑定当前页码,监听…

vue css实现分页

vue css实现分页

实现分页的CSS方法 在Vue项目中实现分页功能,通常需要结合CSS样式来控制分页器的外观和交互效果。以下是几种常见的CSS实现方法: 基础分页样式 通过CSS定义分页容器的基本样式,包括分页按钮…

vue实现商品分页

vue实现商品分页

Vue 实现商品分页的方法 基础分页实现 安装必要的依赖(如axios用于请求数据) npm install axios 创建分页组件模板 <template> <div&g…

vue实现对数据分页

vue实现对数据分页

分页实现的基本思路 在Vue中实现数据分页通常需要结合后端API或前端本地数据处理。核心逻辑包括计算总页数、当前页数据切片、页码切换事件处理等。以下提供两种常见实现方式。 前端本地分页实现 适用于数…