前后端分离项目(六):数据分页查询(前端视图)

🚀 优质资源分享 🚀

|-------------------------------------------------------------------------------------------|-----|-------------------------------------------------------|
| 🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |

|--------------------------------------------------------------------------------------|-----|------------------------------|
| 💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |

好家伙,该项目为vue2项目

本篇更新数据分页查询的前端部分

先来看看最终效果**

最终代码:

复制代码
**#### "

text-center">用户管理
 
 "4">
 "primary" @click="addDialogVisible = true">添加用户
 

 
 "tableData" style="width: 100%">
 "id" label="序号" width="180">
 
 "name" label="书名" width="180">
 
 "author" label="作者 " width="180">
 

 
 pagination
 :page-size="6"
 :pager-count="11"
 layout="prev, pager, next"
 :total="total"
 @current-change="page">** 

import axios from ' axios '

export default {

name: 'MyUser',

data() {

return {

total: null,

// 用户列表数据

tableData: [

{ id: '1', name: '三体1', author: '大刘' },

{ id: '2', name: '三体2', author: '大刘' },

],

addDialogVisible: false, //控制添加用户对话框的显示与隐藏

addUserForm: {},

//添加表单的验证规则对象

addUserFormRules: {

// username: [{required:true,message:'请输入用户名',trigger:'blur'},

// {min:3,max:10,message:'用户名长度在3~10个字符',trigger:'blur'}],

// password: [{required:true,message:'请输入密码',trigger:'blur'},

// {min:6,max:15,message:'密码长度在6~15个字符',trigger:'blur'}],

// email: [{required:true,message:'请输入邮箱',trigger:'blur'}],

// mobile: [{required:true,message:'请输入手机号',trigger:'blur'}]

}

}

},

methods: {

page(currentPage){

const _this = this;

axios.get('http://localhost:8011/book/findAll/'+currentPage+'/6').then(function (resp) {

_this.tableData = resp.data.content

_this.total = resp.data.totalElements

console.log(resp.data)

})

}

},

created() {

const _this = this;

axios.get('http://localhost:8011/book/findAll/1/6').then(function (resp) {

_this.tableData = resp.data.content

_this.total = resp.data.totalElements

console.log(resp.data)

})

}

}

"less" scoped>

1.先来屡一下思路,

我们要在前端分页展示我们的数据, 一页六份数据,

那么我们要做到,每页对应一个不同的页数的网络请求,

拿到数据后,将它展示在table中

把我们要用的东西安装并配置一下

我们安装我们的老朋友Element UI

复制代码
*npm i element-ui -S**

再安装我们的axios

复制代码
**npm install axios -S**

main.js中,

复制代码
**import Vue from 'vue'
import App from './App.vue'
import axios from 'axios';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

//导入路由模块
import router from "@/router"
// 导入样式
import './assets/css/bootstrap.css'
import './index.css'

Vue.config.productionTip = false

new Vue({
 router,
 axios,
 render: h => h(App),
 
}).$mount('#app')**

2.然后我们来逛一下element商城(去elementUI偷点组件)

拿个table

再拿个分页,

随后我们就可以搭建出我们的基础页面了

看一下后端给我们的数据长什么样子

复制代码
**page(currentPage){
 axios.get('http://localhost:8011/book/findAll/1/6').then(function (resp) {
 console.log(resp.data)
 })
 }**

看看数据

3.开写

来编辑"分页"

对应的page方法

复制代码
**page(currentPage){
 const \_this = this;
 axios.get('http://localhost:8011/book/findAll/'+currentPage+'/6').then(function (resp) {
 \_this.tableData = resp.data.content
 \_this.total = resp.data.totalElements

 console.log(resp.data)
 })
 }

 },**

注意:1.page方法中的currentPage是"当前页数",(跟翻译一个意思,人性化)

2.想想看这里this为什么要这样写

此处,我们调用网络请求拿到数据后,替换我们本来展示的数据就可以了

当然,我们还要还要将总数据量赋值给total

第一页的数据因为我们一开始就要看到,

所以我们把第一页的网络请求放在生命周期函数created中,

复制代码
**created() {
 const \_this = this;
 axios.get('http://localhost:8011/book/findAll/1/6').then(function (resp) {
 \_this.tableData = resp.data.content
 \_this.total = resp.data.totalElements

 console.log(resp.data)
 })
 }**

4.最后去把后端启动

(后端接口的详细写法在上一篇测试项目(五):数据分页查询(后端接口) - 养肥胖虎 - 博客园 (cnblogs.com)),

润!!!(激动)

数据库的表:

嗯.搞定了

最终效果放在开头了

相关推荐
VcB之殇1 分钟前
【three.js】实现玻璃材质时,出现黑色/白色像素噪点
前端·three.js
moeyui7051 分钟前
Python文件编码读取和处理整理知识点
开发语言·前端·python
IT_陈寒17 分钟前
WeaveFox 全栈创作体验:从想法到完整应用的零距离
前端·后端·程序员
pixle024 分钟前
从零学习Node.js框架Koa 【一】 Koa 初探从环境搭建到第一个应用程序
前端·node.js·web·koa.js·web全栈·node服务端框架
抹茶生活25 分钟前
CSS浮动样式
前端·css
匀泪31 分钟前
CE(Linux的例行性工作)
前端·chrome
歪歪10032 分钟前
解决多 Linux 客户端向 Windows 服务端的文件上传、持久化与生命周期管理问题
linux·运维·服务器·开发语言·前端·数据库·windows
不一样的少年_1 小时前
【前端效率工具】再也不用 APIfox 联调!零侵入 Mock,全程不改代码、不开代理
前端·javascript·浏览器
IT_陈寒1 小时前
JavaScript 性能优化实战:我通过这7个技巧将页面加载速度提升了65%
前端·人工智能·后端
JIngJaneIL1 小时前
数码商城系统|电子|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·数码商城系统