vue子父数据传递props和$emit

数据传递(父传子)

1.首先在父组件script中导入子组件

import Child from './child'

并且在父组件中写入<child></child>并绑定需要传递的父组件中的数据num

<child @sendmsg="getmsg" :num="num"></child>

2.在子组件中props要传的数据

        num:{
            type:Number,
            default:5
        }
    },

3.在子组件中

{{num}}即可


数据传递(子传父)

case:传子组件中的msg

1.需要在子组件中写一个发送的方法


      sendMsg(event){

        this.$emit("sendmsg",this.addNum)

        }

    }

sendmsg为key,this.msg为value

2.在父组件中的<chlid></chlid>中用该事件去绑定父组件中的方法

<child @sendmsg="getmsg" :num="num"></child>


        getmsg(data){

          this.info=data;

        }

      }

info去接收传过来的数据

父组件中写{{info}}即可接收到子组件中的msg里面的信息


贴上父组件代码

<template>
    <div>父组件
        {{info}}
        <input v-model="num"></input>
        <child @sendmsg="getmsg" :num="num"></child>
    </div>
</template>

<script>
import Child from './child'
export default {
    name:"parents",
    data(){
        return{
            num:10,
            info:"dododo",
        }
    },
    components:{
        "child":Child,
    },
    methods:{
        getmsg(data){
           this.info=data;

        }
    }
    
}
</script>

<style>

</style>

贴上子组件代码

<template>
    <div>子组件
        {{num}}
        <button @click="sendMsg">传递</button>
    </div>
</template>

<script>
export default {
    name:"child",
    data(){
        return{
            msg:"lalalalala",
        }
    },
    props:{
        num:{
            type:Number,
            default:5
        }
    },
    computed:{
        addNum(){
            return this.num*5;
        }
    },
    methods:{
        sendMsg(event){
            this.$emit("sendmsg",this.msg)
        }
    }
    
}
</script>

<style>

</style>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。