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);

},
相关推荐
陈随易22 分钟前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人2 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
IT_陈寒4 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
Jackson__5 小时前
分享一个横向滚动案例,带悬停暂停,通用性很强
前端
MariaH6 小时前
git rebase的使用
前端
_柳青杨6 小时前
深入理解 JavaScript 事件循环
前端·javascript
阡陌Jony6 小时前
关于前端性能优化的一些问题:
前端
用户600071819107 小时前
【翻译】简化 TSRX
前端
IT乐手8 小时前
佛德角逼平西班牙,国足还有啥借口?
前端
JustHappy8 小时前
我汇总了身边朋友的经历才发现,其实第一份实习是最难找的......
前端·后端·面试