Props形式(父往子)
父组件
<script setup lang="ts"> // 引入组件 import Text from '../components/text.vue' // 定义的数据 const list = '父组件数据'</script><template> <div> <Text :list='list'></Text> </div></template>
子组件
<script lang='ts' setup> // 导入defineProps import { defineProps } from 'vue' // 通过props接管父组件接管的参数 const props = defineProps(['list']) console.log(props.list);</script><template> <div> {{props.list}} </div></template>
在 <script setup> 中必须应用 defineProps
API 来申明 props,它具备残缺的推断并且在 <script setup> 中是间接可用的。
emit形式(子往父)
子组件
<script lang='ts' setup>import { defineEmits } from "vue"; // 注册一个自定义事件名,向上传递时通知父组件要触发的事件 const emit = defineEmits(['em']) const btn = () =>{ // 参数1:事件名 // 参数2:传给父组件的值 emit('em','子组件') }</script><template> <div> <button @click="btn">子组件按钮</button> </div></template>
父组件
<script setup lang="ts"> import {ref} from 'vue' import Text from '../components/text.vue' let message = ref('父组件') // 更改message 的值, data是从子组件传过来的 const em = (em) =>{ console.log(em); message.value = em }</script><template> <div> <p>父组件:{{message}} </p> <Text @em='em'></Text> </div></template>