先贴代码 defineComponent
<script lang="ts">
import {
defineComponent,
reactive,
ref,
toRefs,
} from "vue";
export default defineComponent({
name: "aaaa",
props: {
//接收调用组件传回的参数
title: { type: String, default: "3333" }
},
setup(props, context) {
console.log(props);
const data = reactive({});
const refData = toRefs(data);
const pageSize = ref(100);
//传递方法给父组件
const handleSizeChange = (val: number) => {
pageSize.value=val
context.emit("handleSizeChange", val);
};
return {
...refData,
handleSizeChange,
pageSize
};
}
});
</script>
所有在setup()里面的方法和值,要return 出来 然后组件传递方法是用setup语法糖里面的第二个参数.emit("方法名",传递的值)
context.emit("handleSizeChange", val);
<script setup>代码
<script setup lang='ts'>
import {
reactive,
ref,
toRefs,
onBeforeMount,
onMounted
} from 'vue';
const props=defineProps({
msg:{
type:String,
default:()=>'默认值'
}
})
const emit=defineEmits(["on-change"]) //方法名
const handleClick=()=>{
emit("on-change","子组件方法被调用")
}
</script>
不需要return,直接在里面写代码就行了,接收参数用 defineProps,传递方法用 defineEmits