【Vue 父子组件通信】

data 中数据相互调用

在这里插入图片描述
在这里插入图片描述

需要用到 data 中数据,只需在 mounted 中引用

父子组件传值

  1. 封装子组件
   <!-- 领域对比 -->
   <div v-show="viewName == 'domain'">
       <DomainCompare
       ref="domainCompare"
       @callCompleteLoadData="completeDomainData"
       :eldShow="eldShow"
       :iepShow="iepShow"
       :centerId="centerId"
       :groupId="groupId"
       :periodAlias="periodName"
       :frameworkId="frameworkId">
       </DomainCompare>
   </div>
  1. 引用子组件
	<script>
		import MeasureCompare from './measureCompare.vue'
		import DomainCompare from './domainCompare.vue'
		import xlsx from '@/assets/img/file/xlsx.png'
		export default {
		    name: 'assessmentCompare',
		    components: {
		        MeasureCompare,
		        DomainCompare
		    },
		    data () {
		    ...
  1. 子组件在 props 中定义
	<script>
		export default {
		    name: 'domainCompare',
		    props: {
		        eldShow: Boolean,
		        iepShow: Boolean,
		        centerId: String,
		        groupId: String,
		        periodAlias: String,
		        frameworkId: String,
		    },    
		    data () {
		    ...

props 传值
$ref 父组件调用子组件中方法

   this.$nextTick(function(){
       this.$refs.domainCompare.getDomainCompareData();
   })

this.$nextTick 避免对应内容获取时还未创建

$emit 子组件向父组件传递事件

	// 子组件中传值
	...
   if (this.domianCompareData && Object.keys(this.domianCompareData).length > 0) {
       this.$emit('callCompleteLoadData', 1)
   }
   ...

	// 父组件中处理
	...
	    methods: {
        completeDomainData (count) {
            this.domainHasData = count > 0
        },
	...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值