Vue父子组件传参

本文主要展示了Vue中父子组件如何进行数据传递。通过子组件声明props接收父组件数据,并利用$emit触发事件来实现通信。详细代码示例见正文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

逻辑跟代码的示例解释说明我大都写在了代码备注上,这里就不过多的文字性说明了,直接上代码!

Fu.vue:

<template>
  <div>
      <p>
          <b>子组件</b>
          <!-- 前面的data是子组件里接收数据的变量名,后面data_fu是父组件里数据的变量名 -->
          <Zi :data="data_fu" @pro_fu="get_info"></Zi>   <!-- :data="data_fu"  展示从父组件传到子组件的参数(数据)-->
          <!-- <Zi :data='data_fu' @fu_data="get_info"></Zi>  把子组件的内容全部放到父组件来展示-->
      </p>

      <br><br>

      <p>
          <b>父组件</b>
          <br>

          <button @click="fu_data">传递参数给子组件</button>

          <br>
          {{data_2}}  <!-- 展示子组件定义的内容 -->
      </p>
  </div>
</template>

<script>
import Zi from "./Zi"       // 导入子组件
export default {
    data() {
        return {
            data_fu:"父组件里定义的内容",
            data_2:"子组件里定义的内容",
        }
    },

    components: {
        Zi,     // 注册子组件
    },

    methods:{
        fu_data(){
            this.data_fu = "父组件改变值"
        },

        get_info(val){
            console.log(val)
            this.data_2 = val
        }
    }
}
</script>

<style>

</style>

Zi.vue

1、在子组件中,使用选项 props 来声明需要从父级接收到的数据

2、在子组件中,通过$emit()来触发事件

<template>
  <div>
      <p>
          <ul>
              <li>这里是子组件!!!<button @click="zi_data">传递参数给父组件</button></li>
          </ul>
      </p>
      {{data}}    <!-- 展示父组件传过来的数据 -->
  </div>
</template>

<script>
export default {
    props: ['data'],     // 接收父组件传过来的数据
    data() {
        return {
            data_1: '子组件改变值'
        }
    },

    methods:{
        zi_data(){
            this.$emit('pro_fu', this.data_1)  // 将子组件的内容赋值给pro_fu,传递到父组件
        }
    }
}
</script>

<style>

</style>

下面是运行后的效果:

未点击前:

在这里插入图片描述

点击传递数据后:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值