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

浙公网安备 33010602011771号