VUE中父子组件之间传值

VUE 中父组件向子组件传值

直接贴代码了,这里是片段代码,仔细看并尝试写一下应该是没有问题的。

父组件:
<template>
<div>
	<companyInfo ref="companyInfo" :companyinfo="companyinfo" ></companyInfo>
</div>	
</template>
<script>
import companyInfo from "src/components/companyInfo.vue" 
export default {
        components: {
            companyInfo,
        },
		data(){
   			 return{
       		 companyinfo: {},  // 显示公司信息
		},
}
</script>
子组件:
<template>
	<div class="healthyState"> 状态:{{ companyinfo.healthyState}}</div>
</template>
<script>
export default {
        name: "companyInfo",
		data(){
    		return{
       		 	companyDatas:{
					healthyState:”健康”
				}
			}
		},
		props:['companyinfo'],
}
</script>

这里父组件通过 ":companyinfo=“companyinfo” 方式将值传入子组件,父组件值改变子组件值随之改变。子组件则通过props(值为数组类型)方式接收父组件值。

VUE中子组件向父组件传值
子组件:
<script>
export default {
        name: "companyInfo",
        data() {
            return {
                companyInfo_show: true, 
            }
        },
		methods: {
       		closePop() {
          		 this.$emit("upBottom", 0);
     		  }
       },
}
</script>
父组件:
<template>
<div>
	<companyInfo ref="companyInfo" :companyinfo="companyinfo" @upBottom="updateBottom($event)"></companyInfo>
</div>
</template>
<script>
export default {
        components: {
            companyInfo
        },
        mounted() {
           let show = this.$refs.companyInfo.companyInfo_show;
        },
		methods: {
			updateBottom(val) {
    			document.getElementById("bottom").style.bottom = val + 'vh';
			}
		}
}
</script>

子组件中通过$emit()方式进行传值,第一个参数为方法为方法名,第二参数为需要传的值,父组件中则通过引入的子组件模板调用。

注:upBottom子组件中的方法,$event为子组件传过来的值。

这种方式或许复杂了些,但根据当时的需求来这种方法可以很好的解决的问题。还有以一种方式 通过this.$refs.companyInfo.companyInfo_show来获取子组件的值 这种方式似乎更简便一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值