vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练

这篇具有很好参考价值的文章主要介绍了vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一次vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练的过程。
Naive UI 是一个 Vue3 的组件库。
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。

vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练

fastapi-backend 后端目录
vue-frontend 前端目录
这里我只贴一些关键的代码了,文末有代码仓库可以查看完整的代码.

后端

后端fastapi的搭建请看这里,就不在重复了

前端

Vue 及 Naive UI 的创建

在项目的根目录终端下:

npm init vue@latest  # 然后一路回车即可

安装及引入Naive UI

npm i -D naive-ui

安装后 配置前端下边的main.js引入Naive UI框架.

import { createApp } from 'vue'
import App from './App.vue'
import naive from 'naive-ui'

const app = createApp(App);
app.use(naive);
app.mount('#app');

安装axios npm install axios

然后在前端目录的终端下:npm run dev
即可看到项目正常启动了.

前端的数据渲染

创建Home.vue,在App.vue中引入。

Home.vue 中配置一个简单的列表和分页组件:

<template>
  <n-list>
    <n-list-item v-for="item in items" :key="item.id">
      {{ item }}
    </n-list-item>
  </n-list>
  <n-pagination v-model:page="current" :item-count="count" :on-update:page="showSizeChange" />
</template>

其中v-model:page是当前页码数,item-count是数据的总条数。:on-update:page="showSizeChange"是当前页码数发生变化后的响应。

再看Vue中的js代码:

<script setup>
import { ref, watch } from 'vue'
import axios from 'axios'

const baseURL = 'http://localhost:8000'

const items = ref([]) // 数据
const count = ref(0) // 数据总条数
const current = ref(1) // 当前页面
const size = ref(10) // 每页显示的条数

// :on-update:page 事件 来控制获取当前页面的页码数
const showSizeChange = (page,) => {
  console.log(current.value, size.value)
  current.value = page
}

// 翻页方法
const nextPage = () => {
  let skip = size.value * (current.value - 1)
  let limit = size.value
  console.log(skip, limit)
  axios.get(baseURL + '/getitems',
    {
      params: {
        skip: skip,
        limit: limit
      },
    },
  ).then(function (response) {
    console.log(response.data)
    items.value = response.data.items
    count.value = response.data.item_count
  })
}
// 默认加载第一页的数据
nextPage()

// 侦听器,用来检测页码变化后执行翻页方法
watch(current,nextPage)
</script>

nextPage()根据当前页码数加载数据,watch(current,nextPage)用来检测页码变化后执行翻页方法,let skip = size.value * (current.value - 1),这个是比较关键的代码,控制着数据返回的起始点.与后端的return db.query(Item).offset(skip).limit(limit).all()代码时对应的。

最后运行代码效果如下:

vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练

本文代码仓库地址:

https://github.com/bosichong/vue3-fastapi-pagination/tree/naive_Pagination文章来源地址https://www.toymoban.com/news/detail-461654.html

到了这里,关于vue3+Naive UI+fastapi 前后端分离 Pagination 数据分页实战演练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • naive-ui NPopconfirm怎么用vue3的h()渲染

    先看效果 然后我先贴代码, 你们看懂的先运行下, 文章后面我教你怎么 添加这种有template,有slot插槽的组件 正文 以提示窗组件为例,官方地址为==》Naive UI 这个部分 就是下图左边部分驼峰写法 然后你vscode 键盘ctrl+鼠标左键 点击他 然后同样的方法查看ButtonProps,你就知道

    2024年02月13日
    浏览(42)
  • Vue3+Vite+Pinia+Naive后台管理系统搭建之四:Naive UI 组件库的安装和使用

    前言 如果对 vue3 的语法不熟悉的,可以移步 Vue3.0 基础入门Vue3.0 基础入门快速入门。 UI 组件请参考官网:Naive Ui 官网 为什么选择 naive ui 不继续用 element ui,因为尤大大推荐,可以尝试下,而且 naive ui 更贴近 vue3 的语法,当然易上手还是element ui 好一点。 github 开源库:Vue

    2024年02月07日
    浏览(74)
  • Vue3的几款UI组件库:Naive UI、Element Plus、 Ant Design Vue、Arco Design

    vue3系列的三款ui框架简要对比: 框架 Element Plus Naive ui Ant Design Vue Arco Design 简介 element-ui Vue3版本,国内使用广泛 Vue作者推荐的Vue3ui 组件库 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步 ArcoDesign 主要服务于字节跳动旗下中后台产品的体验设计和技术实现 社区活跃度

    2024年02月03日
    浏览(44)
  • Naive UI+Vue3来实现点击按钮一键切换明暗主题的功能

    记录一下如何使用Naive UI+Vue3代码来实现一键切换明暗主题的功能。 效果如下: 终端下输入: 起好项目的名称,然后一路回车即可。 至此Vue3的项目已经搭建完毕,打开http://127.0.0.1:5173/就可以看到项目的默认首页了。 安装Naive UI依赖库 然后我们根据官方出的配置对项目进行

    2024年02月12日
    浏览(40)
  • vue3 + typescript + vite + naive ui + tailwindcss + jsx 仿苹果桌面系统

    基于 vue3.x + typescript + vite + naive ui + tailwindcss + jsx + vue-router + pinia,项目使用 tsx 作为模版输出,全程没有使用vue提供的SFC, 仿macos桌面前端项目,开源免费模版,希望减少工作量和学习新技术,希望能够帮助大家; 本人主要是后端的开发,对于前端我也是刚入门的小白,有很

    2024年02月07日
    浏览(37)
  • vue3 + naive ui + Tabs 报错 ‘Slot “default“ invoked outside of the render function‘

    警告的异常信息: 解决方法: 如下给Tabs组件加一个defaultValue的默认值即可 参考:https://github.com/tusen-ai/naive-ui/issues/3134

    2024年01月21日
    浏览(47)
  • 基于Vue和Element UI实现前后端分离和交互

    目录 前言 一、Element UI简介 1.Element UI是什么 2.Element UI的特点 二、项目搭建 1.创建一个SPA项目 2.安装 Element-UI 3.导入组件 4.创建登陆注册界面 登录组件---Login.vue 注册组件---Register.vue 定义组件与路由的对应关系 效果演示:  三、前后端数据交互 1.安装axios 2.导入api模块,添加

    2024年02月08日
    浏览(49)
  • 前后端分离,使用vue3整合SpringSecurity加JWT实现登录校验

    前段时间写了一篇spring security的详细入门,但是没有联系实际。 所以这次在真实的项目中来演示一下怎样使用springsecurity来实现我们最常用的登录校验。本次演示使用现在市面上最常见的开发方式,前后端分离开发。前端使用vue3进行构建,用到了element-plus组件库、axios封装、

    2024年01月23日
    浏览(53)
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[二]

    需求分析 效果图 思路分析 使用Vue3+ElementPlus 完成。 代码实现 修改ssm_vuesrcApp.vue 成如下形式, 会删除部分用不上的代码,增加 修改ssm_vuesrcviewsHomeView.vue , 删除ssm_vuesrccomponentsHelloWorld.vue 创建ssm_vuesrccomponentsHeader.vue 修改ssm_vuesrcApp.vue , 引入Header 组件 创建全局的global

    2024年02月13日
    浏览(44)
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--功能实现[五]

    需求分析/图解 思路分析 完成后台代码从dao - serivce - controller , 并对每层代码进行测试 完成前台代码,使用axios 发送http 请求,完成带条件查询分页显示 代码实现 修改FurnService.java 和FurnServiceImpl.java , 增加条件查询 修改FurnService.java 修改FurnServiceImpl.java 修改FurnController.java , 处

    2024年02月14日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包