Vue中bus通讯折叠侧边栏

折叠侧边栏为例

1 <el-aside :width="isCollapse?'10px':'200px'">        
2         <el-menu  :default-active="this.$route.path"  unique-opened router :collapse="isCollapse">
3         </el-menu>           
4 </el-aside>

 

创建bus.js (也可用来子组件向子组件传递数据 )

1 import Vue from 'vue';
2 const bus = new Vue();
3 export default bus; 

A传值 isCollapse 给 B

A页面

 1 import bus from './bus'
 2 
 3 export default {
 4     data() {
 5         return {
 6             isCollapse: false
 7         }
 8     },
 9     methods: {
10         click() {
11             this.isCollapse = !this.isCollapse
12             bus.$emit('collapse', this.isCollapse);
13         },
14     }
15 }

B页面接收 isCollapse 

import bus from './bus' 
export default {
    data() {
        return {
            isCollapse: false
        };
    },
    created() {
            // e为A页面传来的 isCollapse
            bus.$on('collapse', e => {
                this.isCollapse = e;
            });
        },
}
posted @ 2021-10-15 17:46  往暮  阅读(178)  评论(0)    收藏  举报