综合运用 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; }