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

发布时间:2026/10/5 6:30:44
vxe-table 配置 ajax 数据源:告别冗余代码,一键渲染表格 在后台管理系统中表格数据通常来自后端接口。传统开发中每个页面都需要重复编写请求逻辑、处理加载状态、解析返回数据等代码冗余且维护困难。vxe-table 的 proxy-config 代理配置允许你通过简单的配置将表格与数据源绑定让组件自动管理数据加载将你从重复劳动中解放出来。对于没有复杂交互逻辑的通用页面非常好用简单配置一下就能渲染一个页面。列表配置核心配置proxy-config.ajax.query在 vxe-grid 的配置中通过 proxyConfig.ajax.query 指定一个返回 Promise 的函数即可让表格自动请求数据并渲染。proxyConfig:{ajax:{query:(){// 必须返回一个 Promiseresolve 的结果为数组数据returnfetch(/api/list).then(resres.json())}}}代码templatedivvxe-gridv-bindgridOptions/vxe-grid/div/templatescriptsetupimport{reactive}fromvueconstgridOptionsreactive({border:true,height:500,proxyConfig:{// showLoading: false, // 关闭加载中// response: {// list: result // 如果指定接收字段例如 result则接收结果 Promise{ result: any[] }// },ajax:{query:(){// 默认接收 Promiseany[]returnfetch(/api/list).then(resres.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(resres.json())}}},pagerConfig:{// 页码配置空对象即可使用默认配置}代码templatedivvxe-gridv-bindgridOptions/vxe-grid/div/templatescriptsetupimport{reactive}fromvueconstgridOptionsreactive({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(resres.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(resres.json())}}通过 proxy-config.ajax.queryvxe-table 将数据获取与表格渲染解耦只需关注接口定义和列配置表格数据源的管理交给 vxe-table 即可。https://vxetable.cn

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询