最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3菜單展開(kāi)和收起實(shí)現(xiàn)

 更新時(shí)間:2024年09月18日 09:49:56   作者:jnfy  
在Vue項(xiàng)目中實(shí)現(xiàn)首頁(yè)布局,包括可收放的左側(cè)菜單和主體內(nèi)容區(qū),在store中管理菜單狀態(tài),通過(guò)修改isCollapse狀態(tài)控制菜單的展開(kāi)與收起,在home.vue中編寫(xiě)左側(cè)菜單欄的代碼和樣式,實(shí)現(xiàn)一個(gè)響應(yīng)式的用戶(hù)界面

Vue3菜單展開(kāi)和收起

先確定我們首頁(yè)的布局

我們使用一下這種,在src/views/home.vue:

<template>
  <div class="common-layout">
    <el-container>
      <el-aside width="200px">Aside</el-aside>
      <el-container>
        <el-header>Header</el-header>
        <el-main>Main</el-main>
      </el-container>
    </el-container>
  </div>
</template>

先寫(xiě)一下我們左邊的菜單

菜單可以收起和展開(kāi),所以我們?cè)趕tore/module/common.js 中定義一個(gè) isCollapse狀態(tài)和修改isCollapse的方法。

import { defineStore } from 'pinia'
export const useCommonStore = defineStore('common', {
  state: () => {
    return {
      token: null,
      isCollapse: false, //默認(rèn)值
    }
  },
  actions: {
   //改變isCollapse
    updateCollapse() {
      this.isCollapse = !this.isCollapse
    },
  },
  persist: true,
})

這是我要實(shí)現(xiàn)的左側(cè)菜單欄代碼和樣式

//src/views/home.vue
<template>
  <div>
    <el-container>
      <el-aside @mouseover="mouseover" :width="store.isCollapse ? '100px' : '258px'">
        <div class="sidebar">
          <div  class="ga-flex ga-ai-c ga-j-sb  logo-warp p-15">
            <img class="logo m-r-10" src="./../assets/images/galaxy-logo.png" />
            <h2  v-if="!store.isCollapse" class="flex-1">GaUI</h2>
            <a @click="open" v-if="!store.isCollapse">
              <i class="icon-align-left f-20"></i>
            </a>
          </div>
          <div class="p-15">
            <el-menu
              active-text-color="#534686"
              class="el-menu-vertical-demo"
              :collapse="store.isCollapse"
              @open="handleOpen"
              @close="handleClose"
            >
                <el-sub-menu index="1">
                  <template #title>
                    <el-icon><location /></el-icon>
                    <span>Navigator One</span>
                  </template>
                  <el-menu-item index="1-1">item one</el-menu-item>
                  <el-menu-item index="1-2">item two</el-menu-item>
                 
                </el-sub-menu>
             
            </el-menu>
          </div>
        </div>
      </el-aside>
      <el-container>
        <el-header>
          <div>header</div>
        </el-header>
        <el-main>
          Main
        </el-main>
        <el-footer>Footer</el-footer>
      </el-container>
    </el-container>
  </div>
</template>
<script setup>
import { useCommonStore } from '../store/module/common.js'
const store = useCommonStore()
// 點(diǎn)擊展開(kāi)收起
const open = () => {
  store.updateCollapse()
}
// 如果是收起狀態(tài),那么鼠標(biāo)移入時(shí)則展開(kāi)
const mouseover = () => {
  if (store.isCollapse) {
    store.updateCollapse()
  }
}
const handleOpen = (key, keyPath) => {
  //console.log(key, keyPath)
}
const handleClose = (key, keyPath) => {
  //console.log(key, keyPath)
}
</script>
<style lang="scss" scoped>
.sidebar {
  background-color: #ffffff;
  transition: 0.3s;
  min-height: 100vh;
  .logo-warp {
    padding: 20px 25px;
    box-shadow: -9px 0 20px rgb(89 102 122 / 10%);
    .logo {
      width: 50px;
      height: 50px;
    }
    a{
      &:hover{
        color: #534686;
      }
    }
  }
  .el-sub-menu__title:hover {
    background-color: var(--el-menu-hover-bg-color);
  }
}
.el-aside {
  box-shadow: 0 0 21px 0 rgb(89 102 122 / 10%);
}
.el-menu {
  border-right: none !important;
}
.el-menu-vertical-demo:not(.el-menu--collapse) {
  width: 228px;
  min-height: 100%;
}
</style>

左側(cè)菜單效果:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項(xiàng)目中使用Hbuilder打包app 設(shè)置沉浸式狀態(tài)欄的方法

    vue項(xiàng)目中使用Hbuilder打包app 設(shè)置沉浸式狀態(tài)欄的方法

    這篇文章主要介紹了vue項(xiàng)目 使用Hbuilder打包app 設(shè)置沉浸式狀態(tài)欄的方法,本文通過(guò)實(shí)例代碼效果圖展示給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-10-10
  • vue-resource請(qǐng)求實(shí)現(xiàn)http登錄攔截或者路由攔截的方法

    vue-resource請(qǐng)求實(shí)現(xiàn)http登錄攔截或者路由攔截的方法

    這篇文章主要介紹了vue-resource請(qǐng)求實(shí)現(xiàn)http登錄攔截或者路由攔截的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • vue3+element-plus實(shí)現(xiàn)兩個(gè)表格同步滾動(dòng)功能

    vue3+element-plus實(shí)現(xiàn)兩個(gè)表格同步滾動(dòng)功能

    現(xiàn)在需要兩個(gè)表格,為了方便對(duì)比左右的數(shù)據(jù),需要其中一邊的表格滾動(dòng)時(shí),另一邊的表格也跟著一起滾動(dòng),并且保持滾動(dòng)位置的一致性,本文給大家介紹vue3+element-plus實(shí)現(xiàn)兩個(gè)表格同步滾動(dòng)功能,感興趣的朋友一起看看吧
    2025-06-06
  • vue項(xiàng)目使用lodash節(jié)流防抖函數(shù)問(wèn)題解決方案

    vue項(xiàng)目使用lodash節(jié)流防抖函數(shù)問(wèn)題解決方案

    在lodash函數(shù)工具庫(kù)中,防抖 _.debounce 和節(jié)流 _.throttle 函數(shù)在一些頻繁觸發(fā)的事件中比較常用,這篇文章主要介紹了vue項(xiàng)目使用lodash節(jié)流防抖函數(shù)問(wèn)題與解決,需要的朋友可以參考下
    2023-10-10
  • 在vue中使用Echarts利用watch做動(dòng)態(tài)數(shù)據(jù)渲染操作

    在vue中使用Echarts利用watch做動(dòng)態(tài)數(shù)據(jù)渲染操作

    這篇文章主要介紹了在vue中使用Echarts利用watch做動(dòng)態(tài)數(shù)據(jù)渲染操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析

    vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析

    這篇文章主要介紹了vue-cli創(chuàng)建的項(xiàng)目中的gitHooks原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法

    詳解Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法

    這篇文章主要介紹了Vue開(kāi)發(fā)網(wǎng)站seo優(yōu)化方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • vue實(shí)現(xiàn).md文件預(yù)覽功能的兩種方法詳解

    vue實(shí)現(xiàn).md文件預(yù)覽功能的兩種方法詳解

    這篇文章主要介紹了Vue預(yù)覽.md文件的兩種方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-04-04
  • 解決vue的component標(biāo)簽渲染問(wèn)題

    解決vue的component標(biāo)簽渲染問(wèn)題

    這篇文章主要介紹了解決vue的component標(biāo)簽渲染問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue-router 報(bào)錯(cuò)NavigationDuplicated的解決方法

    Vue-router 報(bào)錯(cuò)NavigationDuplicated的解決方法

    這篇文章主要介紹了Vue-router 報(bào)錯(cuò)NavigationDuplicated的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03

最新評(píng)論

宜兰市| 岳西县| 阿鲁科尔沁旗| 高密市| 香港 | 休宁县| 南部县| 梅河口市| 石林| 浦县| 南郑县| 日喀则市| 台州市| 松滋市| 承德市| 威海市| 兴仁县| 江口县| 乡城县| 汕尾市| 长垣县| 栖霞市| 卢龙县| 托里县| 江孜县| 大同县| 甘肃省| 陆川县| 鄂托克前旗| 阳高县| 香港| 左贡县| 定安县| 海丰县| 石林| 沅江市| 富锦市| 增城市| 酒泉市| 阿拉善左旗| 隆安县|