记录下vue3父子组件中传参

本文介绍了Vue.js中父组件向子组件传递参数的方法,通过`props`实现数据下行,并展示了如何在子组件中使用`props`接收到的数据。同时,详细阐述了子组件如何通过自定义事件改变父组件的参数值,利用`emit`触发事件并传递新的值给父组件。通过这两个关键机制,深入理解Vue.js组件间的通信原理。
摘要由CSDN通过智能技术生成

一:父组件向子组件传参

在父组件中:

<template>
    我是父组件
    <son :para="para"/>
</template>

<script setup lang="ts">
import { ref } from "vue"

const para = ref<string>("我是子组件")
</script>

在子组件中:

<template>
    我是子组件
    <p>{{para}}</p>
    为了不冲突,也可以这样使用
    <p>{{props.para}}</p>
</template>

<script setup lang="ts">
const props = defineProps<{
  para:string
}>()
</script>

二:自定义事件; 可以从子组件中改变父组件的参数值

<template>
    我是父组件
    <son :para="para" @start="goToSon"/>
</template>

<script setup lang="ts">
import { ref } from "vue"

const para = ref<string>("我是子组件")

const goToSon = (newValue:string)=>{
    para.value = newValue:string
}
</script>

 在子组件中:

<template>
    我是子组件
    <button @click="son"></button>
</template>

<script setup lang="ts">
const props = defineProps<{
  para:string
}>()

const emits = defineEmits(["start"])

const son = ()=>{
  emits("start", "我会改变父组件中的参数")
}
</script>

Vue2,可以使用props来实现父子组件的深层传参。父组件可以通过props将数据传递给子组件,在子组件可以通过props接收这些数据并使用。 以下是一个示例,展示了在Vue2如何进行父子组件的深层传参: 1. 在父组件定义需要传递给子组件的数据。可以在父组件的data选项定义一个属性,并在模板使用v-bind将该属性绑定到子组件上。 2. 在子组件声明props来接收从父组件传递过来的数据。可以在子组件的props选项定义一个或多个属性,用于接收父组件传递的数据。 3. 在子组件使用props接收到的数据。可以在子组件的模板使用props来获取父组件传递过来的数据,并进行相应的处理或展示。 下面是一个示例代码: 父组件模板(Father.vue): ``` <template> <div> <div>{{ fatherMessage }}</div> <Child :childMessage="fatherMessage"></Child> </div> </template> <script> import Child from './Child.vue' export default { components: { Child }, data() { return { fatherMessage: '我是父组件传递的值' } } } </script> ``` 子组件模板(Child.vue): ``` <template> <div> <div>{{ childMessage }}</div> </div> </template> <script> export default { props: { childMessage: { type: String, required: true } } } </script> ``` 在这个示例,父组件通过定义一个名为`fatherMessage`的属性,并将其传递给子组件`Child`。子组件通过props接收到父组件传递的`childMessage`数据,并在模板展示出来。 这样,父子组件就实现了深层传参。父组件可以传递数据给子组件,并在子组件使用这些数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue3父子组件传参通信](https://blog.csdn.net/qq_45397526/article/details/126281133)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值