Bootstrap

【学习笔记】vue-cli中组件间传参的方式

一、父子组件传参

首先创建子组件,子组件的名字为component1.vue

<template>
    <div class="">
        <div class="">
            <span>接受父组件:{{name}}</span>
            <el-button type="primary" @click="Forward()">打印父组件的信息</el-button>
        </div>
    </div>
</template>

<script>
export default {
    // 子组件通过props组件接收,name需要和父组件的key一致
    props:['name'],
    data() { 
        return {
        }
    },

    mounted(){},

    methods:{
        Forward(){
            console.log(this.name);
        },
       
    },
}
</script>

然后在父组件中引用并向子组件传参

<template>
    <div class="">
        <!--向子组件传入name参数-->
        <Component1  :name="name"></Component1>
    </div>
</template>

<script>
import Component1 from "./moudles/component1"
export default {
	components:{
		Component1
	},
	data () {
		return {
			name:"父组件信息发送",
		}
	},
	methods:{}
}
</script>

二、子组件向父组件传参

首先创建子组件,这里的名字为component2.vue

<template>
    <div class="">
        <div class="">  
            <span>向父组件发送数据:{{childval}}</span>
            <el-button type="primary" @click="reverse()">发送父组件的信息</el-button>
        </div>
    </div>
</template>

<script>
export default {
    data() { 
        return {
            childval:"子组件的数据test"
        }
    },

    mounted(){},

    methods:{
        //子组件需要使用this.$emit()方法将参数传入父组件,第一个参数要和父组件绑定的方法名一致
        reverse(){
            this.$emit('childval',this.childval)
        }
    },
}
</script>

<style scoped>

</style>

然后配置父组件接收

<template>
	<div class="">
			<p>父组件接收:{{valueName}}</p>
			<Component2  @childval="childvalFun"></Component2>
	</div>
</template>

<script>
import Component2 from "./moudles/component2" 
export default {
	components:{
		Component2
	},
	data () {
		return {
			valueName:null
		}
	},
	methods:{
		childval(data){
			this.valueName= data
			console.log(data) //子组件传入的参数
		}
	}
}
</script>

;