Helloworld.vue
<template>
<div>
  <h1>Helloworld </h1>
  <button @click="trigEmit">点击触发父组件传来的函数</button>
  <button @click="()=>{
    console.log(props.name)
  }">点击打印从父组件传来的值</button>
</div>
</template>
<script setup>
/**
 * 
 * defineProps:用于声明接收的数据(从父组件传递的 props)。
  defineEmits:用于声明和触发事件(子组件通知父组件)。
 */
import { defineProps,defineEmits } from 'vue';
const props = defineProps(['name'])
const emit = defineEmits(["fun"])
const trigEmit = ()=>{
  emit("fun","meowrain")
}
</script>
<style scoped></style>
app.vue
<script setup>
import { ref } from 'vue';
import HelloWorld from './components/HelloWorld.vue'
const name = ref("meowrain")
const printHello = (arg)=>{
  console.log("hello " + arg)
}
</script>

<template>

<div>
  <!-- @ 传递方法,:传递值 -->
  <HelloWorld :name="name" @fun="printHello"/>
</div>
</template>

<style scoped>

</style>