当前位置: 首页 > news >正文

vxe-table 配置 ajax 数据源:告别冗余代码,一键渲染表格

在后台管理系统中,表格数据通常来自后端接口。传统开发中,每个页面都需要重复编写请求逻辑、处理加载状态、解析返回数据等,代码冗余且维护困难。vxe-table 的 proxy-config 代理配置,允许你通过简单的配置将表格与数据源绑定,让组件自动管理数据加载,将你从重复劳动中解放出来。

对于没有复杂交互逻辑的通用页面非常好用,简单配置一下就能渲染一个页面。

列表配置

核心配置:proxy-config.ajax.query

在 vxe-grid 的配置中,通过 proxyConfig.ajax.query 指定一个返回 Promise 的函数,即可让表格自动请求数据并渲染。

proxyConfig:{ajax:{query:()=>{// 必须返回一个 Promise,resolve 的结果为数组数据returnfetch('/api/list').then(res=>res.json())}}}

代码

<template><div><vxe-gridv-bind="gridOptions"></vxe-grid></div></template><scriptsetup>import{reactive}from'vue'constgridOptions=reactive({border:true,height:500,proxyConfig:{// showLoading: false, // 关闭加载中// response: {// list: 'result' // 如果指定接收字段,例如 result,则接收结果 Promise<{ result: any[] }>// },ajax:{query:()=>{// 默认接收 Promise<any[]>returnfetch('/api/list').then(res=>res.json())}}},columns:[{type:'seq',width:70},{field:'name',title:'Name'},{field:'nickname',title:'Nickname'},{field:'role',title:'Role'},{field:'address',title:'Address',showOverflow:true}]})</script>

分页配置

分页查询与列表查询的配置基本一致,区别在于:

  • 需要添加 pagerConfig 分页配置。
  • 接口返回的数据结构需包含分页信息(总条数)。
  • query 方法会接收分页参数(page.pageSize、page.currentPage)。

核心配置

proxyConfig:{response:{list:'result',// 列表数据字段路径total:'page.total'// 总条数字段路径},ajax:{query:({page})=>{// page.pageSize: 每页条数// page.currentPage: 当前页码returnfetch(`/api/list?page=${page.currentPage}&size=${page.pageSize}`).then(res=>res.json())}}},pagerConfig:{// 页码配置(空对象即可使用默认配置)}

代码

<template><div><vxe-gridv-bind="gridOptions"></vxe-grid></div></template><scriptsetup>import{reactive}from'vue'constgridOptions=reactive({border:true,height:500,pagerConfig:{},proxyConfig:{// showLoading: false, // 关闭加载中// response: {// result: 'result', // 配置响应结果列表字段// total: 'page.total' // 配置响应结果总页数字段// },ajax:{query:({page})=>{// 默认接收 Promise<{ result: [], page: { total: 100 } }>returnfetch(`/api/page/${page.pageSize}/${page.currentPage}`).then(res=>res.json())}}},columns:[{type:'seq',width:70},{field:'name',title:'Name'},{field:'nickname',title:'Nickname'},{field:'role',title:'Role'},{field:'address',title:'Address',showOverflow:true}]})</script>

分页参数传递

query 方法接收一个参数对象,包含分页信息和搜索条件:

参数类型说明
page.pageSizenumber每页条数(由 pagerConfig.pageSize 控制)
page.currentPagenumber当前页码
paramsobject自定义搜索参数(可通过 reload(params) 传递)

响应数据结构映射

如果后端返回的数据结构与默认要求不一致,可通过 response 配置映射:

默认要求配置示例
列表数据直接为数组{ list: [] }
列表数据嵌套在对象中response: { list: ‘data.records’ }
总条数嵌套在对象中response: { total: ‘data.total’ }
proxyConfig:{response:{list:'data.records',// 取 response.data.records 作为列表total:'data.total'// 取 response.data.total 作为总条数},ajax:{query:()=>fetch('/api/list').then(res=>res.json())}}

通过 proxy-config.ajax.query,vxe-table 将数据获取与表格渲染解耦,只需关注接口定义和列配置,表格数据源的管理交给 vxe-table 即可。

https://vxetable.cn

http://www.jsqmd.com/news/1374414/

相关文章:

  • 如何在5分钟内实现电脑控制手机:Android投屏终极指南
  • causal_conv1d_fn函数全解析:参数、返回值与实战应用场景
  • 终极指南:如何用ClearerVoice-Studio让你的音频瞬间变清晰
  • 如何快速掌握可视化编程语言 Snap!:面向初学者的完整指南
  • 2026年必应快排程序:基于 Selenium 自动化解决方案
  • 批发订货商城授信功能设计:破解B2B赊销难题,严控交易风险
  • 集团企业协同管理平台架构设计与实践
  • 如何免费快速改造Windows 11:ExplorerPatcher让经典界面完美回归
  • 回文自动机(PAM)
  • 业财管理步入深水区:金蝶进销存实施怎么选?主流模式与厂家对比指南
  • 2026 年 8 月实力盘点:论文写作助手哪个好用?20 款主流平台全面对比
  • 海隆兴推广UVA和UVC灯珠应用以及区别
  • 2026年08月 长沙企业财税顾问推荐|3家靠谱财税公司,助力企业财税合规 - 讲清楚了
  • 从安装到出片:MiniMax-H3-Turbo-Lora-Pruned-ComfyUI完整部署教程
  • AI编码成本优化实战:从Databricks降本70%到构建智能代理
  • 网络与请求级错误
  • 小芯片跑模型:预算有限时优先处理内存、延迟还是精度
  • YimMenu终极配置指南:3步快速解决菜单显示与保护功能设置
  • 如何为任天堂DS设备打造终极自定义菜单系统:TWiLight Menu++完全指南
  • CSS Scope Inline核心原理揭秘:MutationObserver如何实现无构建的样式作用域
  • 酵母单杂交 pHis2 系统到底怎么用?和 pAbAi 有什么区别?
  • Windows更新卡死怎么办?这个开源工具让你一键修复所有问题
  • pi-web数据库设计:会话数据存储的最佳实践指南
  • 终极Android Material Drawer Template指南:打造符合Material Design的导航抽屉
  • 如何快速上手hvmi?5分钟搭建你的第一个内存introspection环境
  • hvmi开发者指南:从零开始构建自定义内存监控插件
  • 不会绘制学术图有多吃亏?科研绘图帮你拉高论文质感 - 爱学习的肖博
  • ERD Online 5.0.0 迭代:聚焦建模复用、DDL 导出与登录体验,还有这些未来计划!
  • MASPreferences高级技巧:自定义工具栏样式与面板切换动画全攻略
  • tableView 相关 API 一览表