jeecgboot-vue3笔记(二)主子组件数据加载
需求
页面上部分为主组件,内容为表格jvxetable,下部分为子组件,内容也为表格。
当切换主组件表格行时,子组件表格显示主记录相关的子记录。
例如上方显示学生信息,下方显示选中学生的考试成绩信息。
实现思路
- 设置行切换点击时勾选行
clickSelectRow - 响应行勾选事件
@selectRowChange="handleSelectRowChange" - 过滤掉全选操作
if(event.action == "selected-all")return;//勾选全部时row为undefined - 获取操作(选中或去选无所谓)行的id
currentRowId = event.row.id;//当前选中行ID - 调用子组件方法(loadData),传递参数给子组件
refAnalyte.value.loadData(currentRowId);
父组件调用子组件方法
- template引入子组件,并设置ref
- script定义组件的引用变量
const refAnalyte = ref(null); - 子组件暴露方法
defineExpose({
loadData
}); - 父组件在目标处(例如行切换事件响应处)使用子组件调用其方法,并传递参数
refAnalyte.value.loadData(currentRowId);
应用效果
代码
// 当选择的行变化时触发的事件
function handleSelectRowChange(event) {
// console.log("row select change");
if(event.action == "selected-all")return;//勾选全部时row为undefined
// console.log(event.row.id)
currentRowId = event.row.id;//当前选中行ID
refAnalyte.value.loadData(currentRowId);
refTestMethod.value.loadData(currentRowId);
}