综合运用 Vue 框架知识点,设计并开发汉堡菜单
{
path: '/test',
component: () => import('../views/Test.vue'),
meta: { title: 'Test' }
}
<div class="iconfont icon-thlist ham" @click="showMenu"></div>
<nav :class="['main-nav', { 'active': store.flag }]">
//...
</nav>
import { ref } from 'vue'
import { defineStore } from 'pinia'
export const useMenuStore = defineStore('menu', () => {
const flag = ref(0)
const switchFlag = () => {
flag.value ? flag.value = false : flag.value = true
}
return { flag, switchFlag }
})
import { useMenuStore } from '@/stores/menu';
const store = useMenuStore()
const showMenu = () => {
store.switchFlag()
}
import { useMenuStore } from '@/stores/menu'
router.afterEach((to, from) => {
// 其它逻辑
document.title = to.meta.title
const store = useMenuStore()
store.flag = false
})
.main-nav {
position: absolute;
left: -150px;
width: 150px;
height: calc(100vh - 20vh - 5vh);
background-color: #000;
transition: .4s;
padding: 10px;
}
.main-nav.active {
left: 0px;
}