尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
vue-table 行操作实战:用 __actions 加事件捕获,快速实现行级 CRUD 功能
【免费下载链接】vue-tabledata table simplify! -- vuetable is a Vue.js component that will automatically request (JSON) data from the server and display them nicely in html table with swappable/extensible pagination component.项目地址https://gitcode.com/gh_mirrors/vu/vue-table点击查看免费下载vue-table是一个 Vue.js 表格组件会自动从服务器请求 JSON 数据、渲染成 HTML 表格并自带可替换的分页。本文将带你用__actions特殊字段 item-actions按钮 vuetable:action事件捕获3 步快速实现「查看 / 编辑 / 删除」的行级 CRUD功能几乎不用手写任何表格模板。⚠️版本提示本文对应vuetable面向 Vue 1.x 的版本见 package.json 中version: 1.5.12。如果你用的是 Vue 2.x语法与组件结构会有差异但「特殊字段 事件捕获」的思路完全一致。一、30 秒看懂 vue-table 行操作的工作原理vue-table 的精髓是你不用自己写tr/td只需声明要显示哪些列剩下交给组件。而行操作则是靠两个「特殊字段 / 属性」配合完成的。1.__actions列 item-actions按钮在fields列定义里加入__actions组件就会在每行末尾自动渲染一列操作按钮按钮内容完全由item-actions属性决定itemActions: [ { name: view-item, label: , icon: zoom icon, class: ui teal button }, { name: edit-item, label: , icon: edit icon, class: ui orange button }, { name: delete-item, label: , icon: delete icon, class: ui red button } ]每个按钮都有一个name动作标识、icon图标、class样式这就是渲染按钮的全部来源。源码中item-actions是一个数组属性默认空数组见 Vuetable.vue而__actions单元格就是遍历这个数组逐个生成button见 Vuetable.vue。2.vuetable:action事件如何冒泡到父组件点击任意一个按钮时组件内部会调用callAction把「按钮的name」和「整行数据对象」一起$dispatch出去事件名是vuetable:action见 Vuetable.vue。callAction: function(action, data) { this.$dispatch(this.eventPrefixaction, action, data) }父组件只要在events里监听vuetable:action就能拿到action点了哪个按钮和data哪一行从而执行真正的增删改查。完整参考examples/semantic.html。 一句话总结__actions负责“显示按钮”vuetable:action负责“接收点击”两者分离逻辑与界面彻底解耦。二、第 1 步在 fields 里加一个 __actions 列打开 examples/semantic.html 可以看到最简写法——只需在列数组里加一项__actionsfields: [ { name: name, title: Full Name, sortField: name }, { name: email, sortField: email }, { name: gender, sortField: gender, callback: gender }, { name: __actions, dataClass: center aligned } // 行操作列 ]可以直接写字符串__actions也可以写成对象并附带dataClass控制该列样式例如居中。__actions属于「特殊字段」以__开头它不会去映射 JSON 的某个属性而是触发按钮列渲染见 Vuetable.vue。操作列默认宽度约 15%、居中对齐样式定义在 Vuetable.vue 的style里。三、第 2 步用 item-actions 配置查看 / 编辑 / 删除按钮item-actions就是一个「按钮清单」加几个按钮、什么图标、什么颜色都在这里定义。语义参考 examples/semantic.htmlBootstrap 风格参考 examples/bootstrap.htmlitemActions: [ { name: view-item, label: , icon: zoom icon, class: ui teal button }, { name: edit-item, label: , icon: edit icon, class: ui orange button }, { name: delete-item, label: , icon: delete icon, class: ui red button } ]把它绑定到vuetable标签上即可注意用:表示响应式绑定vuetable api-urlhttp://example.app:8000/api/users table-wrapper#content :fieldscolumns :item-actionsitemActions /vuetablename是你自己起的动作标识后续事件捕获时就用它来区分「用户点了哪个按钮」建议用view-item/edit-item/delete-item这类语义化命名。四、第 3 步捕获 vuetable:action 事件完成行级 CRUD最后一步在父组件的events里监听vuetable:action按action分支处理。官方示例见 examples/semantic.htmlevents: { vuetable:action: function(action, data) { // data 就是“整行数据”data.id 通常是该行的主键 if (action view-item) { this.viewProfile(data.id) // 查看跳转 / 打开详情 } else if (action edit-item) { this.openEditForm(data.id) // 编辑打开表单 } else if (action delete-item) { this.deleteItem(data.id) // 删除请求后端 } } }action按钮name用来判断用户点了「查看 / 编辑 / 删除」中的哪一个。data当前行完整对象data.id、data.name等字段随便取足够支撑一次 CRUD 请求。删除后如何刷新表格删掉一条数据后表格内存里还是旧的需要让组件重新拉取。vuetable暴露了两个内置刷新事件refresh回到第 1 页并重新加载reload只刷新当前页见 Vuetable.vue。删除成功后广播一下即可deleteItem: function(id) { this.$http.delete(/api/users/ id).then(function() { // 通知 vuetable 重新请求删除才会在页面上体现 this.$broadcast(vuetable:refresh) }) }编辑保存、新增成功之后同样广播vuetable:refresh或vuetable:reload让列表同步最新数据。五、进阶技巧给按钮加 extra 属性tooltip 提示如果只用图标不加文字鼠标悬停时给个提示会更友好。item-actions里的extra字段会把一组属性直接挂到button上由组件内建的v-attr指令实现见 Vuetable.vue。Bootstrap 官方示例就靠它挂了 tooltip见 examples/bootstrap.html。itemActions: [ { name: edit-item, label: , icon: glyphicon glyphicon-pencil, class: btn btn-warning, extra: { title: Edit, data-toggle: tooltip, data-placement: top } } ]extra里写任意 HTML 属性都能生效title、data-toggle、自定义data-*等非常适合「Bootstrap 提示 / 权限控制 / 埋点」等场景。六、备选方案用 __component 自定义整列操作组件__actions适合「标准化的一排小按钮」。当你需要完全自定义操作列比如按行权限显隐不同按钮、或嵌一个下拉菜单时可以用__component:组件名特殊字段渲染任意组件。它会把「整行数据」通过rowDataprop 传进去参考 examples/semantic.html// fields 中 { name: __component:custom-action, title: Component, dataClass: center aligned }Vue.component(custom-action, { props: { rowData: { type: Object, required: true } }, template: button clickitemAction(\delete-item\, rowData)删除/button, methods: { itemAction: function(action, data) { /* 这里直接拿到 rowData自行处理 */ } } })如何选择按钮规整、样式统一 → 用__actions操作列差异大、需要行级逻辑 → 用__component。两者可以共存于同一张表。七、行操作常见问题排查清单现象可能原因排查位置操作列空白、没有按钮item-actions没绑定漏了:或数组为空Vuetable.vue按钮点了没反应父组件没监听vuetable:action或没写进eventsVuetable.vue拿到data却没有id后端返回字段名不叫id需对应调整取值examples/semantic.html删除后列表没变化忘记广播vuetable:refresh/vuetable:reloadVuetable.vuetooltip 不生效extra里的属性名写错或没引入对应 CSS 框架Vuetable.vue整列不显示fields里没加__actions或拼写错误Vuetable.vue小结vue-table 做行级 CRUD 只要抓住「一条特殊字段 一个事件」加列fields里放__actions声明操作列配按钮item-actions定义查看 / 编辑 / 删除按钮可加extra做提示收事件父组件监听vuetable:action按action分支执行请求完成后广播vuetable:refresh刷新。界面与逻辑分离、按钮与样式可换、支持任意 CSS 框架——这就是 vue-table「data table simplify」的精髓。相关组件源码可继续深入 src/components/Vuetable.vue、分页组件 VuetablePagination.vue以及入口注册文件 vue-table.js。赞分享【免费下载链接】vue-tabledata table simplify! -- vuetable is a Vue.js component that will automatically request (JSON) data from the server and display them nicely in html table with swappable/extensible pagination component.项目地址https://gitcode.com/gh_mirrors/vu/vue-table点击查看免费下载相关推荐TanStack Table Rows 实战指南行对象获取、行 ID、显示索引与子行操作TanStack Table Rows 实战指南行对象获取、行 ID、显示索引与子行操作 导读 本指南聚焦 TanStack Tablev9中 Row行前端UI组件PyFlink Table API 行级操作实战Map / FlatMap / Aggregate / FlatAggregate 完整指南PyFlink Table API 行级操作实战Map / FlatMap / Aggregate / FlatAggregate 完整指南 PyFlink后端大数据流处理批处理Handsontable 行操作实战用 alter() API 与 ManualRowMove 插件实现行的添加、删除与上移下移Handsontable 行操作实战用 alter API 与 ManualRowMove 插件实现行的添加、删除与上移下移 本文基于 Handsontabl前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

排课管理系统课设:从E-R图到冲突检测的MySQL数据库设计

排课管理系统课设:从E-R图到冲突检测的MySQL数据库设计

简介:这是一套面向数据库原理及应用课程设计的完整排课管理系统方案文档,适合计算机相关专业学生完成课程设计或毕业设计参考。内容围绕某中学的排课需求展开,系统覆盖需求分析、数据字典、数据流图、概念结构设计、E-R图、逻辑结构设计中的关…

📅 2026/10/11 22:37:18
电网104规约JAVA104协议监听:从TCP流量到变电站实时数据

电网104规约JAVA104协议监听:从TCP流量到变电站实时数据

简介:电网104规约JAVA104协议监听资源包,面向电力自动化、变电站远动通信与IEC 60870-5-104协议开发者,可解决主站连接、实时监听与104报文解析等典型需求。针对需要快速实现104规约通信的Java工程师,提供了基于SpringBoot的可直接…

📅 2026/10/11 22:37:18
全国医院POI矢量数据处理:坐标系转换、清洗与验证实战

全国医院POI矢量数据处理:坐标系转换、清洗与验证实战

简介:2025全国医院医疗机构兴趣点(POI)矢量数据是一份面向GIS分析、城市规划与公共卫生研究的空间数据集,基于WGS84坐标系收录全国医院名称和精确坐标,可支撑医疗资源分布评估、服务半径分析、急救路径规划、流行病学空…

📅 2026/10/11 22:37:18
MORE NEWS

更多资讯

📰

ICNIRP 2020 射频曝露限值导则解读:从100kHz到300GHz的合规与测量实践

简介:ICNIRP 2020中文版导则PDF,面向电磁兼容、通信工程、医疗设备与工业安全等领域的工程师、科研人员及合规从业者,用于解决100 kHz-300 GHz频段电磁场曝露限值的查阅与合规评估问题。资源包共1个文件,为PDF格式,大小…

📰

MS-VAR模型实操:基于GiveWin与OxMetrics的区制转移建模指南

如果你经常处理宏观或者金融时间序列,大概率会有这样的体会:一段样本里的数据,某些时期波动特别大、均值明显不同,甚至变量之间的联动方式都变了。常规线性VAR把所有样本压成一组固定系数,面对这种“结构性切换”显得很…

📰

α-亚甲基-γ-丁内酯:靶向NF-κB p65改善关节炎的天然产物机制

靶向NF-κB p65的DNA结合活性,听起来是个相当"分子机制"的题目,但真正让我对这个方向产生兴趣,是一次电泳迁移率实验里的细节:加药组的p65条带明显比对照组淡下去,而整个通路上游的磷酸化水平几乎没有变化。…

📰

Python算法模板:面试刷题必备的二分查找、并查集与动态规划代码底稿

简介:这是一份面向LeetCode与OJ刷题者的Python3算法模板合集,定位为面试与日常练习的通用代码参考,帮助读者摆脱重复造轮子的低效状态。作者系统梳理了常见数据结构与算法的通用写法,并附上典型例题、题号与简要说明,便…

📰

Java实现ε-closure:NFA转DFA的核心算法实战

简介:本资源是一份面向计算机专业本科生的《编译原理》课程设计报告,聚焦NFA空闭包ε-closure(I)的Java程序实现,解决有限自动机中状态子集经ε弧可达性计算这一核心教学难点。报告完整覆盖需求分析、概要与详细设计、…

📰

Python LSTM日志异常检测实战:无需标注数据的时序建模方案

简介:本资源是一套基于LSTM神经网络的日志异常检测完整实现方案,面向人工智能、软件工程及自动化等专业的在校学生、教师与初级算法工程师,解决系统运维中日志序列建模与异常自动识别的实际问题,适用于毕业设计、课程实践及工业级…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬