基于Vue+node.js+Mysql实现分页功能 不多BB ,直接上干货 以下是我data里面定义的yema属性: 逻辑层(核心部分代码): 献上数据库的内容: 是的,宁没看错,就需要这么简简单单的一行代码 之前有看到一个问题,数据库里面如果有十万个数据, 首先在钩子函数里面先调用jak函数 同样,为了减少接口请求。这俩用的是同一个接口,这个逻辑更加简单易懂。
代码如下:<!-- HTML部分切换页码的循环 --> <ul class="yema"> <li @click="kko(index,item.id)" v-for="(item,index) in fenye" :key="item.id">{{item}} </li> <!-- 给fenye数组直接循环出来,并且点击的时候传过去两个值(下标和数据库里的ID值) --> </ul> </div>
data() { return { fenye:[], <!--注意,由于之后我用了动态渲染按钮里面数字的方法,所以给这个值定义为空,如若不使用,直接在数组里面写12345等数字就能简单实现分页--> }; },
Node里面操作数据库的部分(后台)var express = require('express'); var router = express.Router(); let db=require('../db') router.post('/', function(req, res, next) { let sql='SELECT * FROM bingli '; db.base(sql,null,(result)=>{ res.send(result) }); }) module.exports = router;
重点来了(Vue的前端部分:) //分页功能 kko(neirong){ this.$axios.post("https://localhost:3000/Bingli") .then(response => { this.infos= response.data.splice(neirong*12,12) // 接收的neirong即为点击Li的下标 前端点击的时候,如果点击1则渲染数据库里面从0开始的12条数据 }); },
主要的思路是:
拿到后端接口所发过来的所有数据,利用kko(neirong)里面传过来的下标值来动态渲染页面上的数据,拿我的Vue页面来举例,如下图
同样,点击2的时候传过去的下标是1,则渲染的数据为从12个开始的之后12个数据。
点击3的时候传过去的下标是2,同理渲染的是从第24个开始的之后12个数据
如果看不懂,可以看图(图自己画的,我是灵魂画师)
渲染页面的数据就好像一个多边形的柱状体,只有我可以看到它时,我才让它显示对应的数据
例如我现在只能看到123,那么456的数据我就不进行渲染
通过splice(点击的li的下标,每个分页有多少个数据)来进行动态渲染
如何实现功能的同时不让页面崩溃(因为渲染的数据过多)
使用这个分页的话,可以很大程度上减少浏览器数据渲染的压力,再利用Lazyload相信可以很好的解决这个问题
好了。主要的分页功能就到这了 以下是根据数据库里面数据的长度来动态渲染分页的按钮的代码 created() { this.bingli(); this.jak(); } };
jak(){ this.$axios.post("https://localhost:3000/Bingli") .then(response => { var mu= response.data.length; for(var i=0;i<=mu;i++){ if(Math.ceil(i%12)==0 ){ this.fenye.push(Math.ceil(i/12)+1) } } }) },
简单的循环。如果循环的时候除以页数没有余数,就让页面渲染一个按钮,
我的数据库里面有49个数据,分别会在12,24,36,48,49(因为49/12大于4,会向上取整为5)
对应的我页面上将会渲染5个按钮,由于我设置了+1,内容分别会是12345,
如下图:
崔战神 2020年6月25日21:58:49
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算