vue父子组件传参

本文详细介绍了Vue.js中父组件与子组件之间的数据传递方法,包括如何使用props进行父组件向子组件的数据传递,以及如何利用事件机制实现子组件向父组件的信息反馈。同时,还探讨了如何通过ref调用子组件的方法。

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

父组件传给子组件

在父元素parent.vue中:

<template>
  <Child :parentToChild="parentToChild" />
</template>

<script>
import Child from "./child";
export default {
    name: "parent",
    components: { Child },
    data() {
        return {
            parentToChild: "我是父组件里面的数据"
        };
    }
};
</script>

在子元素child.vue中:

<template>
  <div>{{parentToChild}}</div>
</template>

<script>
export default {
    name: "Child",
    //props: ["parentToChild"]
    props: {
        parentToChild: String
    }
};
</script>

父子传参是通过props来传递的,切记props中从父级引入的数据都是不能在子元素组件中修改的

如果父组件要调用子组件中的方法时,应该如何呢?

这个时候就要用到ref了,给子组件添加一个ref然后通过获取ref节点,就可以调用子组件中的方法了

在parent.vue中:

<template>
    <div>
        <Child ref="child" />
        <div @click="click">获取儿子中的方法</div>
    </div>
</template>

<script>
import Child from "./child";
export default {
    name: "parent",
    components: { Child },
    methods: {
        click() {
            this.$refs.child.click(); //输出:子组件中的方法
        }
    }
};
</script>

在child.vue中:

<template>
    <div>儿子</div>
</template>

<script>
export default {
    name: "Child",
    methods: {
        click() {
            console.log("子组件中的方法");
        }
    }
};
</script>


子组件传给父组件

在父组件parent.vue中:

<template>
  <Child @toParent="parentMethod" />
</template>

<script>
import Child from "./child";
export default {
    name: "parent",
    components: { Child },
    methods: {
        parentMethod(val) {
            console.log("子组件触发");
            console.log(val); //爸爸,你好
        }
    }
};
</script>

在父组件中自定义一个toParent事件

在子组件child.vue中:

<template>
  <div @click="click">点击</div>
</template>

<script>
export default {
    name: "Child",
    methods: {
        click() {
            this.$emit("toParent", "爸爸,你好");
        }
    }
};
</script>

子组件中通过this.$emit来触发父组件中自定义事件toParent,并且传递参数过去,父组件中可以接收子组件传过来的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值