vue实现分页功能

下面给出“Vue实现分页功能”的完整攻略:

1.需求分析

要实现分页功能,我们首先需要对其进行需求分析。常见的分页功能通常包含以下需求:

  • 当前页码的展示;
  • 总页数的展示;
  • 点击页码进行跳转;
  • 上一页和下一页的按钮;
  • 可以手动输入页码进行跳转。

2.实现方法

根据需求分析,我们可以采用以下方法来实现:

2.1.设置数据和计算属性

首先,在Vue实例中设置两个数据:currentPage(当前页)pageSize(每页数据条数)。然后使用计算属性pageCount(总页数)计算总页数。

<template>
  <div>
    <ul>
      <li v-for="n in pageCount" :key="n">
        <a href="#" :class="{ active: n === currentPage }">{{n}}</a>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1, // 当前页
      pageSize: 10, // 每页数据条数
      total: 100, // 总数据条数
    };
  },
  computed: {
    pageCount() {
      return Math.ceil(this.total / this.pageSize); // 计算总页数
    }
  }
};
</script>

2.2.点击页码进行跳转

使用v-on指令绑定click事件,点击页码后修改当前页码,即可实现跳转到对应页。

<a href="#" :class="{ active: n === currentPage }" v-on:click="currentPage = n">{{n}}</a>

2.3.实现上一页和下一页按钮

同样使用v-on指令绑定click事件,修改当前页码实现跳转。

<ul>
  <li>
    <a href="#" v-on:click="currentPage--">上一页</a>
  </li>
  <li v-for="n in pageCount" :key="n">
    <a href="#" :class="{ active: n === currentPage }" v-on:click="currentPage = n">{{n}}</a>
  </li>
  <li>
    <a href="#" v-on:click="currentPage++">下一页</a>
  </li>
</ul>

2.4.手动输入页码进行跳转

使用input元素和v-model指令实现输入框,然后绑定keyup.enter事件,如果输入的页码符合当前总页数的范围,则修改当前页码,实现跳转。

<div>
  <input type="text" v-model="inputPage" v-on:keyup.enter="goToPage(inputPage)">
  <button v-on:click="goToPage(inputPage)">Go</button>
</div>

<script>
export default {
  data() {
    return {
      currentPage: 1, // 当前页
      pageSize: 10, // 每页数据条数
      total: 100, // 总数据条数
      inputPage: '', // 手动输入的页码
    };
  },
  computed: {
    pageCount() {
      return Math.ceil(this.total / this.pageSize); // 计算总页数
    }
  },
  methods: {
    goToPage(page) {
      if (page >= 1 && page <= this.pageCount) {
        this.currentPage = page;
      }
    }
  }
};
</script>

3.示例说明

下面给出两个示例说明:

3.1.基础分页功能

一个基础的分页功能示例,包含了上一页、下一页、总页数、页码点击跳转、手动输入跳转等功能。代码演示:https://codepen.io/kuleyang/pen/dyWbYGr

3.2.带搜索过滤功能的分页

示例展示了带搜索过滤功能的分页。搜索时将数据过滤后展示在页面,同时配合分页功能进行数据的展示。代码演示:https://codepen.io/kuleyang/pen/YzPXjzv

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue实现分页功能 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • JavaScript 上传文件限制参数案例详解

    JavaScript 上传文件限制参数是前端开发常用技能之一,它可以限制上传文件的类型和大小,防止了非法文件的上传,提高了网站的安全性。以下是实现上传文件限制参数的完整攻略: 1. HTML 在 HTML 文件中,需要添加一个 input 标签来实现文件的上传,同时需要为 input 标签指定 type=”file” 属性。在 input 标签中添加 acc…

    Vue 2023年5月28日
    00
  • vue修改对象的属性值后页面不重新渲染的实例

    Vue.js是一个响应式框架,它支持组件化开发,当数据发生改变时,页面会自动更新。但是,在使用Vue.js时有一个问题:当修改对象的属性值后,页面不会重新渲染。这是因为Vue.js检测数据的变化是基于对象的setter方法,而不是对于对象的属性的getter/setter的监听,导致Vue.js无法发现对象属性的修改。因此,我们需要特殊的处理来让Vue.js…

    Vue 2023年5月28日
    00
  • 如何手写一个简易的 Vuex

    首先,我们需要明确什么是 Vuex, Vuex 是 Vue.js 应用程序的状态管理模式,它采用集中式存储管理应用的所有组件的状态,我们可以将这个状态类比一个容器,这个容器里保存着整个应用的状态,而组件只能通过事件的形式来修改这个容器中的状态。下面我们来讲解手写一个简易的 Vuex 的过程。 步骤一:实现 store 在 Vuex 中,我们通过创建一个 St…

    Vue 2023年5月27日
    00
  • Vue中引入样式文件的方法

    当我们使用Vue框架来构建前端应用时,经常需要引入样式文件来美化页面样式。在Vue中引入样式文件的方法有以下几种: 引入全局样式文件 我们可以将全局样式文件引入到Vue项目的入口文件(比如main.js文件)中。这样可以让这些样式在所有Vue组件中都可用。 // main.js文件 import Vue from "vue"; impor…

    Vue 2023年5月28日
    00
  • Vue按时间段查询数据组件使用详解

    关于“Vue按时间段查询数据组件使用详解”的完整攻略,我来详细讲解如下: 一、背景 在开发Web应用程序时,常常需要按时间段查询数据。如果每个查询功能都自己写一遍,那代码量会非常庞大,而且不利于维护和更新。为了更高效地开发查询功能,本文将介绍一种Vue组件的开发,该组件可以根据指定的时间段来查询数据。 二、组件设计 我们将设计一个“按时间段查询数据”的Vue…

    Vue 2023年5月29日
    00
  • vue 如何实现表单校验

    下面是 “Vue 如何实现表单校验” 的完整攻略。 使用 Vue.js 实现表单校验 Vue.js 做为一款流行的前端框架,提供了很好的表单校验的支持。Vue.js 2.x 版本提供了 “v-model” 指令和 “validate” 方法,可以让我们快速方便地实现表单校验。 下面将介绍两个示例,来详细讲解 Vue.js 如何实现表单校验。 示例一:基础校验…

    Vue 2023年5月27日
    00
  • vue对象复制方式(深拷贝,多层对象拷贝方式在后面)

    Vue.js是一个非常流行的JavaScript框架,它提供了一种响应式的数据绑定机制,使开发人员可以方便地管理和修改UI状态。在Vue.js开发中,我们经常需要对Vue对象进行复制操作,这里提供了深拷贝和多层对象拷贝两种方式。 深拷贝方式 深拷贝是指将一个对象及其所有属性和属性值复制到一个新的对象中,这个新的对象与原始对象没有任何关联。在JavaScrip…

    Vue 2023年5月28日
    00
  • 原生JS改变透明度实现轮播效果

    好的!原生JS改变透明度实现轮播效果的攻略如下: 一、准备工作 在HTML文件中创建一个包含图片的轮播容器,如下所示: <div class="slider"> <img src="./image1.jpg" alt="image1"> <img src=".…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部