返回顶部
首页 > 资讯 > 精选 >Vue分页查询如何实现
  • 742
分享到

Vue分页查询如何实现

2023-07-06 00:07:19 742人浏览 安东尼
摘要

这篇文章主要介绍“Vue分页查询如何实现”,在日常操作中,相信很多人在Vue分页查询如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue分页查询如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧

这篇文章主要介绍“Vue分页查询如何实现”,在日常操作中,相信很多人在Vue分页查询如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue分页查询如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

我编写了一个简单的前端页面用来查询数据,页面一共有几个逻辑

Vue分页查询如何实现

具体的效果可以看下面的演示

Vue分页查询如何实现

下面就来看一下具体的实现步骤。

首先看一下vue的代码

<script type="text/javascript">    Vue.createApp({        data()  {            return {                items : [],                // 关键词                keyWord : "",                // 是否没有数据                isnull : false,                // 一开始不显示上一页和下一页                isshow : false,                // 一共有多少条数据                countInfo : 0,                // 每一页显示几条数据                pageSize : 10,                // 当前是第几页                currentPage : 1,                // 一共有几页                countAll : 1,                code : 200            }        },        methods: {            search() {                // 拿到待搜索的关键词                var keyword = document.getElementById("keyword").value;                console.log(keyword);                this.keyword = keyword;                this.currentPage = 1;                var url = "Http://localhost:8080/csdn/search/" + keyword + "/" + this.currentPage;                console.log(url);                axiOS.get(url).then((response) => {                    if(response.data.msg.count==0) {                        this.isnull = true;                        // 将原始数据置空                        this.items = [];                        // 不显示上一页下一页按钮                        this.isshow = false;                    } else {                        this.isnull = false;                        console.log(response)                        this.items = response.data.msg.list;                        this.countInfo = response.data.msg.count;                        // 计算一共有几页                        this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                         this.isshow = true;                    }                })                .catch(function (error) {                    console.log(error);                });            },            getNextPage() {                if(this.currentPage == this.countAll) {                    this.currentPage = this.currentPage;                } else {                    this.currentPage = this.currentPage + 1;                }                var url = "http://localhost:8080/csdn/search/" + this.keyword + "/" + this.currentPage;                axios.get(url).then((response) => {                    console.log(response)                    this.items = response.data.msg.list;                    // 计算一共有几页                    this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                 })                .catch(function (error) {                    console.log(error);                });            },            getPrePage() {                if(this.currentPage == 1) {                    this.currentPage = 1;                } else {                    this.currentPage = this.currentPage - 1;                }                var url = "http://localhost:8080/csdn/search/" + this.keyword + "/" + this.currentPage;                axios.get(url).then((response) => {                    console.log(response)                    this.items = response.data.msg.list;                    // 计算一共有几页                    this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                 })                .catch(function (error) {                    console.log(error);                });            }        },    }).mount("#app");</script>

data()中返回了几个变量,

  • items:用来存放待展示的数据项

  • keyword:记录本次查询使用的关键词

  • isnull:表示一次查询的结果数量是否为0,用来控制没有结果的显示逻辑

  • isshow:表示是否显示上一页下一页按钮,以及显示当前页数和数据总数

  • countInfo:记录一共有多少条结果

  • pageSize:记录每页显示的数据项,目前后端固定每页展示10条数据

  • currentPage:记录当前是第几页

  • countAll:记录一共有多少页数据

  • code:后端返回的一个状态码,没什么用

一共提供了三个方法进行查询

  • search():进行一个新的关键词的查询

  • getNextPage():查询下一页的数据,如果已经是最后一页了,则查询当前页的结果

  • getPrePage():查询上一页的数据,如果已经是第一页了,则查询当前页的结果

接着我们再来看一下后端返回的数据格式

Vue分页查询如何实现

上图中方框内的数据就是后端返回的数据,msg中记录的就是我们需要用到的数据,里面有交给数据项

  • count:表示数据总数,只是查询数据总数,并不会将所有的数据都返回给前端

  • list:返回当前页的数据

  • page:表示当前是第几页

我们具体来看一下list中数据项的内容

Vue分页查询如何实现

可以发现list中的每一项就是构成我们前端页面中一行的数据,这在vue中体现为数据的绑定,下面就来看看详细的html代码

<!DOCTYPE html><html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"><html lang="en"><head>    <meta charset="UTF-8">    <title>纳米搜索</title>    <link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/CSS/bootstrap.min.css" rel="external nofollow" >    <script src="https://cdn.staticfile.org/Jquery/3.2.1/jquery.min.js"></script>    <script src="https://cdn.staticfile.org/popper.js/1.15.0/umd/popper.min.js"></script>    <script src="https://cdn.staticfile.org/twitter-bootstrap/4.3.1/js/bootstrap.min.js"></script>    <script src="https://unpkg.com/vue@3"></script>    <script src="https://unpkg.com/axios/dist/axios.min.js"></script></head><body><div class="container">    <!-- 先编写一个搜索栏 -->    <div class="row" id="app">        <div class="col-md-1"></div>        <div class="col-md-10">            <!-- 这里面有两个个部分 -->            <div class="row">                <!--<div class="col-md-2"></div>-->                <div class="col-md-12">                    <div >                        <h3 >纳米搜索</h3>                    </div>                    <div >                        <div class="fORM-group"  >                            <div class="input-group" >                                <input type="text" class="form-control" name="keyword"  id="keyword" placeholder="请输入要搜索的关键词">                            </div>                        </div>                        <div >                            <button id="search" type="button" class="btn btn-primary" v-on:click="search">搜索</button>                        </div>                    </div>                </div>                <!--<div class="col-md-2"></div>-->            </div>            <hr>            <div>                <div v-for="item of items">                    <!-- 第一行是url -->                    <a :href="item.url" rel="external nofollow"  target="_blank">                        <div >{{item.title}}</div>                    </a>                    <div >{{item.url}}</div>                    <!-- 这一行显示文章作者 -->                    <div >文章作者:<span >{{item.nick_name}}</span></div>                    <!-- 这一行显示标签 -->                    <div >文章标签:<span >{{item.tag}}</span></div>                    <!-- 下面一行显示发表时间,阅读数和收藏数 -->                    <div>                        <div >发表时间:<span >{{item.up_time}}</span></div>                        <div >阅读量:<span >{{item.read_volum}}</span></div>                        <div >收藏量:<span >{{item.collection_volum}}</span></div>                    </div>                    <br>                    <hr>                </div>            </div>            <!-- 当没有查询结果的时候显示 -->            <div v-if="isnull">                <span>非常抱歉,没有您想要的结果(。・_・。)ノI'm sorry~</span>            </div>            <!-- 当有数据的时候显示 -->            <div v-if="isshow">                <div  >                    <button type="button" class="btn btn-primary" v-on:click="getPrePage">上一页</button>                </div>                <div  >                    <button type="button" class="btn btn-primary" v-on:click="getNextPage" >下一页</button>                </div>                <div >                    <span>第{{currentPage}}/{{countAll}}页</spa>                </div>                <div >                    <span>共有{{countInfo}}条数据</spa>                </div>            </div>        </div>        <div class="col-md-1"></div>    </div></div></body><script type="text/javascript">    Vue.createApp({        data()  {            return {                items : [],                // 关键词                keyword : "",                // 是否没有数据                isnull : false,                // 一开始不显示上一页和下一页                isshow : false,                // 一共有多少条数据                countInfo : 0,                // 每一页显示几条数据                pageSize : 10,                // 当前是第几页                currentPage : 1,                // 一共有几页                countAll : 1,                code : 200            }        },        methods: {            search() {                // 拿到待搜索的关键词                var keyword = document.getElementById("keyword").value;                console.log(keyword);                this.keyword = keyword;                this.currentPage = 1;                var url = "http://localhost:8080/csdn/search/" + keyword + "/" + this.currentPage;                console.log(url);                axios.get(url).then((response) => {                    if(response.data.msg.count==0) {                        this.isnull = true;                        // 将原始数据置空                        this.items = [];                        // 不显示上一页下一页按钮                        this.isshow = false;                    } else {                        this.isnull = false;                        console.log(response)                        this.items = response.data.msg.list;                        this.countInfo = response.data.msg.count;                        // 计算一共有几页                        this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                         this.isshow = true;                    }                })                .catch(function (error) {                    console.log(error);                });            },            getNextPage() {                if(this.currentPage == this.countAll) {                    this.currentPage = this.currentPage;                } else {                    this.currentPage = this.currentPage + 1;                }                var url = "http://localhost:8080/csdn/search/" + this.keyword + "/" + this.currentPage;                axios.get(url).then((response) => {                    console.log(response)                    this.items = response.data.msg.list;                    // 计算一共有几页                    this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                 })                .catch(function (error) {                    console.log(error);                });            },            getPrePage() {                if(this.currentPage == 1) {                    this.currentPage = 1;                } else {                    this.currentPage = this.currentPage - 1;                }                var url = "http://localhost:8080/csdn/search/" + this.keyword + "/" + this.currentPage;                axios.get(url).then((response) => {                    console.log(response)                    this.items = response.data.msg.list;                    // 计算一共有几页                    this.countAll = Math.ceil(response.data.msg.count / this.pageSize);                 })                .catch(function (error) {                    console.log(error);                });            }        },    }).mount("#app");</script></html>

使用vue编写前端动态页面真的比原生js或者jquery要方便很多,对比theamleaf也有很多好处。

我们在使用theamleaf的时候,每次提交表单都需要刷新页面,使用vue+axios进行ajax请求则不需要刷新页面,这不仅会减轻服务端的压力,而且可以带来更好的用户体验。

到此,关于“Vue分页查询如何实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Vue分页查询如何实现

本文链接: https://lsjlt.com/news/356713.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue分页查询如何实现
    这篇文章主要介绍“Vue分页查询如何实现”,在日常操作中,相信很多人在Vue分页查询如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue分页查询如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-06
  • Vue分页查询怎么实现
    我编写了一个简单的前端页面用来查询数据,页面一共有几个逻辑 具体的效果可以看下面的演示 下面就来看一下具体的实现步骤。 首先看一下vue的代码 <script type="...
    99+
    2023-05-15
    Vue分页查询实现 Vue分页功能
  • ajax如何实现分页和分页查询
    这篇文章将为大家详细讲解有关ajax如何实现分页和分页查询,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先为了页面的整齐与美观,我用到了bootstrap,需要引进所需要的文件包<link&nbs...
    99+
    2023-06-08
  • Oracle如何实现分页查询
    这篇文章给大家分享的是有关Oracle如何实现分页查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W...
    99+
    2024-04-02
  • Angularjs如何实现分页查询
    这篇文章给大家分享的是有关Angularjs如何实现分页查询的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体代码如下所示://首页导入<script type=...
    99+
    2024-04-02
  • mysql如何实现分页查询
    小编给大家分享一下mysql如何实现分页查询,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! mysq...
    99+
    2024-04-02
  • ssm如何实现分页查询
    这篇文章主要介绍ssm如何实现分页查询,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!ssm整合实现分页查询一、通过limit查询语句实现分页,并展示1.mapper.xml配置<select ...
    99+
    2023-05-30
    ssm
  • golang如何实现查询分页
    这篇文章主要介绍“golang如何实现查询分页”,在日常操作中,相信很多人在golang如何实现查询分页问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”golang如何实现查询分页”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • Vue+ElementUI如何实现分页功能查询mysql数据
    这篇文章给大家分享的是有关Vue+ElementUI如何实现分页功能查询mysql数据的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.问题当数据库中数据比较多时,就要每次只查询一部分来缓解服务器和页面的压力。这...
    99+
    2023-06-22
  • MySQL中如何实现分页查询
    在MySQL中,可以使用LIMIT关键字来实现分页查询。LIMIT关键字用于限制查询结果返回的行数,并可以指定起始行的偏移量。 语法...
    99+
    2024-04-30
    MySQL
  • SSH如何实现条件查询和分页查询
    这篇文章将为大家详细讲解有关SSH如何实现条件查询和分页查询,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、QueryHelper和PageResultQueryHel...
    99+
    2024-04-02
  • php如何实现查询分页显示页码
    本篇内容主要讲解“php如何实现查询分页显示页码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何实现查询分页显示页码”吧!1. 查询分页的基本原理一个完整的分页功能,需要考虑查询条件、分...
    99+
    2023-07-05
  • 使用MySQL如何实现分页查询
    目录一、分页1. 什么是分页2. 真分页3. 假分页4. 缓存层二、MySQL实现分页1. LIMIT用法2. 分页公式8种MySQL分页方法总结方法1: 直接使用数据库提供的SQL...
    99+
    2024-04-02
  • ajax如何实现数据分页查询
    小编给大家分享一下ajax如何实现数据分页查询,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下主页面代码<html xmlns="http://www.w3.org/1999/xhtml...
    99+
    2023-06-08
  • ajax如何实现分页查询功能
    小编给大家分享一下ajax如何实现分页查询功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ajax分页查询功能的具体代码,具体内容如下显示的效果如下:实现效果的...
    99+
    2023-06-08
  • Java如何实现分页查询功能
    在Java中,可以使用分页查询功能来实现对数据库中的数据进行分页显示。下面是一个简单的示例代码:```java// 定义每页显示的记录数int pageSize = 10;// 定义当前页码int currentPage = 1;// ...
    99+
    2023-08-11
    Java
  • hbase分页查询实现
    Hbase本身是没有分页查询的,我在网上找了很多资料来实现一个分页功能,在这里做了一下记录,分享给大家,有什么不足之处,请尽管指出。废话不多说,看代码。import java.io.IOException;...
    99+
    2024-04-02
  • Mybatis实现分页查询
    一. 简单分页查询——limit 使用select查询时,如果结果集数据量较大,一个页面难以处理,就会采用分页查询。 分页查询,就是从结果集中拿出指定的第n页到第m页的数据来显示。 // limit分页公式 // currentP...
    99+
    2023-09-12
    mybatis java mysql
  • jquery实现查询分页
    随着IT行业的发展,Web应用程序越来越受到人们的欢迎。特别是最近几年,随着移动互联网和大数据等技术的快速发展,Web应用程序的需求也越来越多。在Web应用程序中,数据的查询和展示是很重要的功能之一。在大量数据的情况下,如何快速准确地查询和...
    99+
    2023-05-14
  • 如何用jsp+mysql实现网页的分页查询
    本篇内容介绍了“如何用jsp+mysql实现网页的分页查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、实现分页查询的核心sql语句(1...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作