vue展示与隐藏侧边栏功能
navbar.vue
<span @click="closesidebar" class="sidebar">
<svg-icon :icon-class="'sidebar'" :class="{ changecollapse: iscollapse }"/>
</span>closesidebar() {
this.$store.commit("user/close_sidebar");
},stor中user.js
const user = {
namespaced: true,
state: {
opened: localstorage.getitem('sidebarstatus') ? !!+localstorage.getitem('sidebarstatus') : true,
},
mutations: {
close_sidebar: (state) => {
state.opened = !state.opened
if (state.opened) {
localstorage.setitem('sidebarstatus', 1)
} else {
localstorage.setitem('sidebarstatus', 0)
}
},
},
getters: {
opened: state => state.opened
}
}
export default user
sidebar.vue
<el-menu
:default-active="defaultactive"
class="el-menu-vertical-demo"
background-color="#3c4a78"
:active-text-color="iscollapse ? '#fff' : '#3c4a78'"
text-color="#f6f8ff"
unique-opened
:collapse="iscollapse"
:collapse-transition="false"
>
</el-menu>import { mapgetters } from "vuex";
computed: {
...mapgetters("user", ["opened"]),
iscollapse() {
return !this.opened;
}
},总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论