props 方法
父组件传参
<import-package-dialog v-if="dialogs.importPackage" dialoagName="importPackage" @closeDialog="onCloseDialog" >
子组件接收
props: { dialoagName: { type: String, default: "" }, selectData: { type: Array, default() { return [] } } },
子组件传父组件可通 $emit 方法传参
this.$emit('closeDialog', { name: this.dialoagName });
若想父子组件数据同步更新,可通过对象的形式,此处不做叙述,我给大家介绍另一种方法 sync,只需要在父组件参数后面加上.sync即可。
<health-check width="700px" v-if="config.attrNbr === 'HEALTH_CHECK' && isHealthCheck" ref="HEALTH_CHECK" label-width="140px" :containerPortList="containerPortList" :healthData.sync="config.healthCheck" />
子组件通过 update 方法对父组件数据进行更新
this.$emit('update:healthData',xxx)
父子组件数据同步更新也可以通过 v-model 方法来完成,父组件通过 v-model来绑定一个你需要同步更新的值
子组件
props: { // 此处必须是value才行 value: { type: [Number, String], default: '' }, }, // 通过监听改变 watch: { value(val) {
// 实现方法 this.$emit('input', val) } },
当然也可以通vuex进行处理,须知页面刷新是会把vuex里的数据清掉的。