VUe 实现分页ajax请求

<template>
    <div>
        <a-pagination :pageSize='pageSize' v-model="pageIndex" @change="pageChange" :total="total" show-less-items />
    </div>
    
</template>


<script>

export default {
     data() {
        return {
            total:100,
            pageIndex:1,
            pageSize:10
           
            
        };
    },
    mounted(){
      
    },
    methods:{
          pageChange(){
            this.$axios({
                method:'post',
                url:'http://127.0.0.1',
                data:({    //这里是发送给后台的数据
                    "page":this.pageIndex,"pagesize":this.pageSize
                })
            }).then((response) =>{          //这里使用了ES6的语法
                console.log(response)       //请求成功返回的数据
            }).catch((error) =>{
                console.log(error)       //请求失败返回的数据
            })
        }
    }
  
  
};
</script>

main.js

import axios from 'axios';
Vue.prototype.$axios = axios;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 MyBatis 和 Vue 实现分页功能,一般需要以下步骤: 1. 在后端使用 MyBatis 实现分页查询。可以使用 MyBatis 提供的分页插件 PageHelper,也可以手动编写 SQL 语句实现分页查询。 2. 在前端使用 Vue 实现分页组件。可以使用第三方的分页组件库,比如 Element UI、Bootstrap Vue 等,也可以自己编写分页组件。 3. 前端向后端发送分页请求。可以通过 Ajax 发送 GET 请求请求参数中包含当前页码、每页显示数量等信息。 4. 后端接收请求,进行分页查询并返回结果。返回的结果中包含当前页数据、总数据量、总页数等信息。 5. 前端接收到结果,更新分页组件显示的页码和数据。 下面是一个简单的示例代码,仅供参考: MyBatis 分页查询代码: ```java public interface UserMapper { // 分页查询用户信息 List<User> getUserListByPage(@Param("offset") int offset, @Param("pageSize") int pageSize); } // 使用 PageHelper 分页插件的示例代码 PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.getUserListByPage(); PageInfo<User> pageInfo = new PageInfo<>(userList); // 手动编写 SQL 分页查询的示例代码 List<User> userList = userMapper.getUserListByPage(offset, pageSize); int totalCount = userMapper.getUserCount(); int totalPage = (totalCount + pageSize - 1) / pageSize; ``` Vue 分页组件代码: ```html <template> <div> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="user in userList" :key="user.id"> <td>{{ user.name }}</td> <td>{{ user.age }}</td> <td>{{ user.gender }}</td> </tr> </tbody> </table> <div class="pagination"> <ul> <li v-if="currentPage > 1" @click="changePage(currentPage - 1)">«</li> <li v-for="page in pages" :key="page" :class="{ active: page === currentPage }" @click="changePage(page)"> {{ page }} </li> <li v-if="currentPage < totalPages" @click="changePage(currentPage + 1)">»</li> </ul> </div> </div> </template> <script> export default { data() { return { userList: [], currentPage: 1, pageSize: 10, totalCount: 0, }; }, computed: { totalPages() { return Math.ceil(this.totalCount / this.pageSize); }, pages() { let startPage = Math.max(1, this.currentPage - 2); let endPage = Math.min(this.totalPages, this.currentPage + 2); let pages = []; for (let i = startPage; i <= endPage; i++) { pages.push(i); } return pages; }, }, methods: { changePage(page) { this.currentPage = page; this.getUserList(); }, getUserList() { axios.get('/api/user', { params: { pageNum: this.currentPage, pageSize: this.pageSize, }, }).then(res => { this.userList = res.data.list; this.totalCount = res.data.totalCount; }); }, }, mounted() { this.getUserList(); }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值