0
点赞
收藏
分享

微信扫一扫

【Vue 父子组件通信】

爱奔跑的读书者 2022-01-26 阅读 144

这里写自定义目录标题

data 中数据相互调用

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

父子组件传值

  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();
   })

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

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

	// 父组件中处理
	...
	    methods: {
        completeDomainData (count) {
            this.domainHasData = count > 0
        },
	...
举报

相关推荐

0 条评论