vxe-table 的 checkbox复选框

vxe-table 的 checkbox复选框

onSelectChange勾选方法

勾选三行

@checkbox-change 事件回调参数selected

selected.record是勾选的全部数据,selected.row是最后点击的行数据

selected.record

selected.row

saleReturnTableRef.value是什么?

vxeTableRef.value 是 vxe-table 组件的实例对象,不是普通的方法。它里面包含了很多 vxe-table 提供的方法和属性。

从代码中看到的用法

javascript 复制代码
onSelectChange: (selected) => {

    const $table = saleReturnTableRef.value;

    const records = $table.getCheckboxRecords();
    
    // ...

}

常见的 vxe-table 实例方法

方法名 作用
getCheckboxRecords() 获取所有选中的行数据(多选)
getRadioRecord() 获取单选的行数据
getCurrentRecord() 获取当前行数据
loadData(data) 加载数据
reloadData(data) 重新加载数据
refreshData() 刷新数据
clearCheckboxRow() 清空多选选中状态
setCheckboxRow(rows, checked) 设置多选选中状态
scrollToRow(row) 滚动到指定行

通俗理解

javascript 复制代码
// saleReturnTableRef 是 Vue 的 ref 对象
const saleReturnTableRef = ref(null);

// .value 才是实际的 vxe-table 组件实例
const tableInstance = saleReturnTableRef.value;

// 通过实例调用 vxe-table 提供的方法
const selectedData = tableInstance.getCheckboxRecords();

简单说:.value 是 Vue 3 ref 的"拆包"操作,拿到的是 vxe-table 组件的完整实例,里面有很多内置方法可以操作表格。

两种方式对比

方式 代码 适用场景
事件参数 selected.records 只在 @checkbox-change 事件回调中使用
实例方法 $table.getCheckboxRecords() 任何地方都能调用

实际代码中的等价写法

javascript 复制代码
// 当前写法(用实例方法)

onSelectChange: (selected) => {

const $table = saleReturnTableRef.value;

const records = $table.getCheckboxRecords();

// ...

}

// 也可以直接用 selected 参数(更简洁)

onSelectChange: (selected) => {

const records = selected.records; // 效果一样

// ...

}

什么时候必须用实例方法?

当你在事件回调外面需要获取选中行时,只能用实例方法:

javascript 复制代码
// 在其他方法中获取选中状态

const someOtherMethod = () => {

const $table = saleReturnTableRef.value;

const records = $table.getCheckboxRecords(); // ✅ 可以

// selected.records 这里拿不到,因为不在事件回调里

};

建议

onSelectChange 回调内部,两种方式效果一样,用 selected.records 更简洁:

javascript 复制代码
onSelectChange: (selected) => {

saleReturnTableConfig.selectedRows = selected.records;

saleReturnTableConfig.selectedRowKeys = selected.records.map(r => r.id);

},
相关推荐
接着奏乐接着舞11 小时前
sse 两种调用方式
前端·javascript·vue.js
不会敲代码117 小时前
手写 Mini React:从 JSX 到虚拟 DOM 再到 render,搞懂 React 底层原理
前端·javascript·react.js
kyriewen18 小时前
你的代码仓库变成“毛线团”了?Monorepo 用 Turborepo 拆成“乐高积木”
前端·javascript·面试
身如柳絮随风扬18 小时前
你知道什么是 Ajax 吗?—— 从入门到原理,一篇彻底搞懂
前端·ajax·okhttp
旷世奇才李先生18 小时前
Vue3\+TypeScript 2026实战——企业级前端项目架构搭建与性能优化全指南
前端·架构·typescript
Beginner x_u19 小时前
前端八股整理(工程化 02)|CommonJS/ESM、Webpack Loader/Plugin 与Vite 对比
前端·webpack·node.js·plugin·loader
openKaka_19 小时前
createRoot 到底创建了什么:FiberRootNode 和 HostRootFiber 的初始化过程
前端·javascript·react.js
习明然20 小时前
UniApp开发体验感受总结
前端·uni-app
刀法如飞21 小时前
Claude Code Skills 推荐:2026年最值得安装的10个AI技能
前端·后端·ai编程
阿豪只会阿巴21 小时前
【没事学点啥】TurboBlog轻量级个人博客项目——项目介绍
javascript·python·django·html