vue父子组件传参

父组件传给子组件

在父元素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,并且传递参数过去,父组件中可以接收子组件传过来的参数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值