1、父组件
在父组件中,给自定义的属性后面添加…sync,不需要@事件名称来接收子组件的$emit事件,就可以改变父组件的echartsShow的值
<echarts-table-change :echartsShow.sync="echartsShow1"></echarts-table-change>
data() {
return {
echartsShow1: true,
};
},
2、子组件
子组件中@click事件$emit(‘update:echartsShow’, echartsClick()),update:来更新数据,双向绑定。echartsClick()这个方法用来处理要传给echartsShow 的值。
<div class="echarts-table-change">
<div class="triangle"></div>
<div v-show="!isEchartsShow" class="change-icon el-icon-s-data" @click="$emit('update:echartsShow', echartsClick())"></div>
<div v-show="isEchartsShow" class="change-icon el-icon-s-grid" @click="$emit('update:echartsShow', echartsClick())"></div>
</div>
export default {
data() {
return {
isEchartsShow: this.echartsShow
};
},
props: {
echartsShow: {
type: Boolean
}
},
created() {},
mounted() {},
methods: {
echartsClick() {
this.isEchartsShow = !this.isEchartsShow;
return this.isEchartsShow;
}
}
};
这样就实现了不需要在父组件中添加方法来接收数据的变化了。
就是这么简单,写代码别着急,一定要找到合适的方法。