vue+springboot实现分页

1、方法1(简单)、

可参照Element-UI的官方分页

   //返回数据即可
   @GetMapping
    public CommonResult getListCourse() {
        List<EduCourse> list = eduCourseService.list(null);
        return  CommonResult.success().data("list", list);
    }
  <div class="block">
    <span class="demonstration">完整功能</span>
    <el-pagination
      v-show="list.total>0"   //返回数据data值大于0时,展示
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :current-page="currentPage4"
      :page-sizes="[100, 200, 300, 400]"
      :page-size="100"
      layout="total, sizes, prev, pager, next, jumper"
      :total="400">
    </el-pagination>
  </div>

 export default {
 data() {
      return {
        list:null, //查询之后接口返回集合
        page: 1, // 当前页,
        limit: 10,
        total: 0,
        currentPage4
      }
    },
    methods: {
      handleSizeChange(val) {
        console.log(`每页 ${val} 条`);
      },
      handleCurrentChange(val) {
        console.log(`当前页: ${val}`);
      },
      getList(){
       course.getListCourse()
          .then(response=>{
            this.list=response.data.list  //返回成功的数据返回至list集合中
          }) //请求成功
          .catch(error=>{
            console.log(error)
          })  //请求失败
      },
    },
   }

2、方法2、

   	//Java部分的主要实现的业务逻辑
    public Map<String, Object> getTeacherFrontList(Page<EduTeacher> pageTeacher) {
        QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("id");
        Page<EduTeacher> teacherPage = baseMapper.selectPage(pageTeacher, wrapper);
        List<EduTeacher> teacherRecords = teacherPage.getRecords();
        long total = teacherPage.getTotal();
        long current = teacherPage.getCurrent();
        long pages = teacherPage.getPages();
        boolean next = teacherPage.hasNext();
        long size = teacherPage.getSize();
        boolean previous = teacherPage.hasPrevious();
        Map<String, Object> teacherMap = new HashMap<>();
        teacherMap.put("items",teacherRecords);
        teacherMap.put("total",total);
        teacherMap.put("current",current);
        teacherMap.put("size",size);
        teacherMap.put("hasNext",next);
        teacherMap.put("hasPrevious",previous);
        teacherMap.put("pages",pages);
        return teacherMap;
    }
 //JS部分的主要实现业务逻辑
  <div>
          <div class="paging">
            <!-- undisable这个class是否存在,取决于数据属性hasPrevious -->
            <a
              :class="{undisable: !teacherData.hasPrevious}"
              href="#"
              title="首页"
              @click.prevent="gotoPage(1)"></a>
            <a
              :class="{undisable: !teacherData.hasPrevious}"
              href="#"
              title="前一页"
              @click.prevent="gotoPage(teacherData.current-1)">&lt;</a>
            <a
              v-for="page in teacherData.pages"
              :key="page"
              :class="{current: teacherData.current == page, undisable: teacherData.current == page}"
              :title="'第'+page+'页'"
              href="#"
              @click.prevent="gotoPage(page)">{{ page }}</a>
            <a
              :class="{undisable: !teacherData.hasNext}"
              href="#"
              title="后一页"
              @click.prevent="gotoPage(teacherData.current+1)">&gt;</a>
            <a
              :class="{undisable: !teacherData.hasNext}"
              href="#"
              title="末页"
              @click.prevent="gotoPage(teacherData.pages)"></a>
            <div class="clear"/>
          </div>
        </div>



		<script>
		export default {
		    asyncData({ params, error }) {
		    return teacher.getTeacherList(1, 8).then(response => {
		      console.log("teacher数据",response.data.data);
		      return { teacherData: response.data.data }
		    });
		  },
		    methods:{
		      gotoPage(page){
		        teacher.getTeacherList(page, 8)
		        .then(response => {
		          this.teacherData = response.data.data
		        })
		      }
		    }
		};
		</script>


//请求的js部分
 getTeacherList(current,limit) { //查询讲师列表
    return request({
      url: `/eduservice/teacherfront/getTeacherFrontList/${current}/${limit}`,
      method: 'get'
    })
  },
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值