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>
发表回复