欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue中子父组件传值

程序员文章站 2022-05-26 19:09:14
...

就学这一遍

在此附上我的QQ: 2489757828 有问题的话可以一同探讨
我的github: 李大玄
我的私人博客: 李大玄
我的简书: 李大玄
我的CSDN: 李大玄
首先你得有子父组件,并将子组件进行引用
************ 父给子传值 ************
父组件

<template>
    <div class="parent">
        <div class="content">
            这是父页面
            <span @click="sendMes">传值</span> <!-- 1 点击按钮传值 -->
        </div>
        <child @func="getage" :fatherQuill="name"></child><!-- 3 数据发生改变进行传递 -->
    </div>
</template>

<script>
    import child from '../components/child'
    export default {
        data() {
            return {
               name: undefined, 
               age: undefined
            }
        },
        components: {
            child,
        },
        methods: {
            sendMes() { // 2 赋值
                this.name = '哈哈哈'
            },
            getage(data) {
                this.age = data;
            }
        },
    }
</script>

子组件


<template>
    <div>
        <span @click="sendBtn">按钮</span>
        <span class="nameBox"> {{fatherQuill}}</span> <!-- 将接收的值进行渲染 -->
    </div>
</template>

<script>
    export default {
        data() {
            return {
                age: 18
            }
        },
        props: ['fatherQuill'], // 接收值
        methods: {
            sendBtn() {
                this.$emit('func', this.age)
            }
        },
    }
</script>

<style lang="less" scope>
    .nameBox {
        font-size: 30px;
    }
</style>

************ 子给父传值 ************
子组件

<template>
    <div>
        <span @click="sendBtn">按钮</span> <!-- 1. 点击按钮 -->
        <span class="nameBox"> {{fatherQuill}}</span>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                age: 18
            }
        },
        props: ['fatherQuill'],
        methods: {
            sendBtn() {
            	// func 为函数  this,age 为参数
                this.$emit('func', this.age); 
            }
        },
    }
</script>

<style lang="less" scope>
    .nameBox {
        font-size: 30px;
    }
</style>

父组件

<template>
    <div class="parent">
        <div class="content">
            这是父页面
            <span @click="sendMes">传值</span>
            获取大子组件的值{{age}}
        </div>
        <!--  将子组件函数名进行绑定 因为是函数 所以得有方法接收 咱们使用getage接收 -->
        <child @func="getage" :fatherQuill="name"></child>
    </div>
</template>

<script>
    import child from '../components/child'
    export default {
        data() {
            return {
               name: undefined, 
               age: undefined
            }
        },
        components: {
            child,
        },
        methods: {
            sendMes() {
                this.name = '哈哈哈'
            },
            getage(data) {
                this.age = data; // 将接收的值进行赋值渲染
            }
        },
    }
</script>

vue中子父组件传值