Vue父子组件之间通信

1、父 -> 子。通过props

//father.vue
<template>
    <div id="father">
        <div><label>姓名</label><input type="text" v-model="name"/></div>
    </div>
</template>

<script>
    import child from './child'
    export default {
        data() {
            return {
                name: ''
            }
        },
        components: { child }
    }
</script>

<style scoped>

</style>
//child.vue
<template>
    <div id="child">
        <div>父组件传过来的值:{{msg}}</div>
    </div>
</template>

<script>
    export default {
        props: ['msg']
    }
</script>

<style scoped>

</style>

2、子 -> 父 通过emit事件触发父组件上的方法

//father.vue
<template>
    <div id="father">
        <div><label>姓名</label><input type="text" v-model="name"/></div>
        <div style="margin-top:20px">
            <child :msg="name" @msgFt="fun"></child>
        </div>
    </div>
</template>

<script>
    import child from './child'
    export default {
        data() {
            return {
                name: ''
            }
        },
        methods: {
            fun(val) {
                console.log(val)
                this.name = val
            }
        },
        components: { child }
    }
</script>

<style scoped>

</style>
//child.vue
<template>
    <div id="child">
        <div>父组件传过来的值:{{msg}}</div>
        <input type="text" v-model="name" />
        <button type="button" @click="handle">传给父组件</button>
    </div>
</template>

<script>
    export default {
        props: ['msg'],
        data() {
            return {
                name: ''
            }
        },
        methods: {
            handle() {
                this.$emit('msgFt',this.name)
            }
        }
    }
</script>

<style scoped>

</style>
原文地址:https://www.cnblogs.com/zengfp/p/9621485.html