1
赞
app.vue
<top @display="changePage"></top>
<router-view></router-view>
<rightBar v-show="dis" ref="rightbar"></rightBar>
<foot1></foot1>
/*app.vue 一部分js代码,在app.vue这个父组件里面触发子组件rightbar.vue的自定义事件*/
changePage(){
/*其他代码省略*/
this.$refs.rightbar.$emit('tiggle');
}
rightbar.vue
/*(这个为最外层div)*/
<div v-show='barShow'>
<button>关闭</button>
</div>
data(){
return {
barShow:false
}
},
mounted(){
this.$on('tiggle', function () {
this.tiggle();
});
},
methods: {
tiggle: function () {
this.barShow=!this.barShow;
}
}
这个的执行原理就是,利用父组件,触发子组件的函数,然后隐藏子组件,你这个的前提就是保证<top @display="changePage"></top>这个能触发父组件的changePage这个函数,这个你已经实现了,我就不多写了