下面写法是基于setup语法糖
父组件引用:
html部分
<course-drawer ref="courseRef" :form="checkedData"/>
ts部分:
1.引入组件
2.创建实例
3.定义绑定数据
4.调用子组件函数并拿到值
import CourseDrawer from "./baseInfo/courseDrawer.vue";
const courseRef = ref();
const checkedData = ref();
const getCourseData = () => {
const data = courseRef.value.returnCourseData();
console.log("data:", data);
};
子组件
ts部分
1.声明类型
2.声明传参
3.拿传参的值
4.定义并暴露供父组件使用的函数
import { cloneDeep } from "lodash-es";
interface IForm {
id: number;
}
const props = defineProps<{
form: IForm;
}>();
const formData = ref(cloneDeep(props.form));
const returnCourseData = () => {
return courseCheckedList.value;
};
defineExpose({
returnCourseData
});