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

vue3 element-plus二次封裝組件系列之伸縮菜單制作

 更新時間:2023年01月16日 15:49:42   作者:https://blog.csdn.net/weixin_44832362/article/details/128170502  
這篇文章主要介紹了vue3 element-plus二次封裝組件系列之伸縮菜單制作,是基于vue3 vite element-plus搭建的,值的注意的時候,里面的圖標(biāo)組件是經(jīng)過處理的,結(jié)合實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1、效果

折疊效果--只剩圖標(biāo)

展開效果--有圖標(biāo)有文字

 2、主要邏輯代碼

home.vue--主頁代碼

<template>
  <div class="common-layout">
    <el-container>
      <!-- 側(cè)邊欄菜單 -->
      <el-aside width="auto">
        <nav-menu :collpase="state.isCollapse"/>
      </el-aside>
      <el-container>
        <el-header>
          <nav-header v-model:collpase="state.isCollapse" />
        </el-header>
        <el-main>Main</el-main>
      </el-container>
    </el-container>
  </div>
</template>
 
<script setup lang='ts'>
import {ref, reactive } from 'vue'
import NavMenu from '@/components/navMenu/index.vue'
import NavHeader from '@/components/navHeader/index.vue'
 
const state = reactive({
  // 控制折疊與展開
  isCollapse: false
})
 
</script>
<style scoped lang="scss">
  .common-layout {
    width: 100%;
    height: 100%;
    .el-container {
      height: 100%;
      // 就是不折疊的時候?qū)挾仁?00px,折疊的時候?qū)挾茸赃m應(yīng)
    }
  }
  svg {
    width: 1em;
    height: 1em;
    margin-right: 5px;
  }
</style>

nav-menu組件,側(cè)邊菜單組件代碼 

<template>
  <el-menu
    default-active="2"
    class="el-menu-vertical-demo"
    :collapse="props.collpase"
  >
    <el-menu-item index="1">
      <el-icon-menu />
      <template #title>圖標(biāo)選擇器</template>
    </el-menu-item>
    <el-menu-item index="2">
      <el-icon-aim />
      <template #title>省市區(qū)組件</template>
    </el-menu-item>
    <el-menu-item index="3">
      <el-icon-star />
      <template #title>待定</template>
    </el-menu-item>
  </el-menu>
</template>
 
<script setup lang='ts'>
const props = defineProps<{
  collpase: boolean
}>()
</script>
<style scoped lang="scss">
  svg {
    width: 1em;
    height: 1em;
    margin-right: 5px;
  }
  // 記得要有這個,控制側(cè)邊菜單寬度,意思是折疊的時候,寬度自適應(yīng),不著折疊的時候?qū)挾葹?00px
  .el-menu-vertical-demo:not(.el-menu--collapse) {
    width: 200px;
    min-height: 400px;
  }
  .el-menu {
    height: 100%;
  }
</style>

nav-header組件的代碼

<template>
  <div class="collapse" @click="handleCollapse">
    <el-icon-expand v-if="props.collpase"></el-icon-expand>
    <el-icon-fold v-else></el-icon-fold>
  </div>
</template>
 
<script setup lang='ts'>
const  props = defineProps<{
  collpase: boolean
}>()
const emits = defineEmits<{
  // 這樣寫,父組件通過v-model傳值進來,父組件那邊就不用在定義事件改變這里傳過去的值了
  // update:collpase 就會自動改變v-model傳過來的值了
  (e:'update:collpase', value:boolean):void
}>()
 
const handleCollapse = ()=>{
  emits('update:collpase', !props.collpase)
}
 
</script>
<style scoped lang="scss">
.collapse {
  width: 2em;
  svg {
    width: 2em;
    height: 2em;
  }
}
</style>

完整代碼地址

以上是基于vue3 vite element-plus搭建的,值的注意的時候,里面的圖標(biāo)組件是經(jīng)過處理的,所以使用起來,回和常規(guī)使用不一樣,將el-icon-xx替換為常規(guī)的element-plus圖標(biāo)組件使用方式即可

相關(guān)文章

  • Vue3 appear 失效的問題及如何使用 appear

    Vue3 appear 失效的問題及如何使用 appear

    appear 是一個在元素默認(rèn)被顯示的情況下 調(diào)用進入動畫效果,使得元素在這種初次渲染情況下 執(zhí)行進入動畫的屬性,最近在學(xué)習(xí)vue3的動畫時遇到appear無法生效的問題,本文給大家詳細(xì)講解,感興趣的朋友一起看看吧
    2023-10-10
  • 了解VUE的render函數(shù)的使用

    了解VUE的render函數(shù)的使用

    本篇文章主要介紹了了解VUE的render函數(shù)的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Vue中如何把hash模式改為history模式

    Vue中如何把hash模式改為history模式

    這篇文章主要介紹了Vue中如何把hash模式改為history模式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Vue極簡生成器?Vuepress的實現(xiàn)

    Vue極簡生成器?Vuepress的實現(xiàn)

    本文主要介紹了Vue極簡生成器?Vuepress的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06
  • 使用Element時默認(rèn)勾選表格toggleRowSelection方式

    使用Element時默認(rèn)勾選表格toggleRowSelection方式

    這篇文章主要介紹了使用Element時默認(rèn)勾選表格toggleRowSelection方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue-cli打包后本地運行dist文件中的index.html操作

    vue-cli打包后本地運行dist文件中的index.html操作

    這篇文章主要介紹了vue-cli打包后本地運行dist文件中的index.html操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue動態(tài)設(shè)置頁面title的方法實例

    vue動態(tài)設(shè)置頁面title的方法實例

    這篇文章主要給大家介紹了關(guān)于vue動態(tài)設(shè)置頁面title的相關(guān)資料,文中通過實例代碼結(jié)束的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 詳解如何優(yōu)雅運用Vue中的KeepAlive組件

    詳解如何優(yōu)雅運用Vue中的KeepAlive組件

    在Vue中,KeepAlive組件是一種特殊的組件,用于緩存已經(jīng)渲染過的組件實例,本文主要為大家詳細(xì)介紹了KeepAlive組件的用法,需要的小伙伴可以參考下
    2023-09-09
  • VueCli4項目配置反向代理proxy的方法步驟

    VueCli4項目配置反向代理proxy的方法步驟

    這篇文章主要介紹了VueCli4項目配置反向代理proxy的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 詳解Vue-cli 創(chuàng)建的項目如何跨域請求

    詳解Vue-cli 創(chuàng)建的項目如何跨域請求

    本篇文章主要介紹了詳解Vue-cli 創(chuàng)建的項目如何跨域請求 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

乐平市| 葫芦岛市| 长岛县| 南漳县| 虞城县| 锡林浩特市| 调兵山市| 陈巴尔虎旗| 即墨市| 鹤壁市| 乌审旗| 华坪县| 天台县| 凤城市| 名山县| 航空| 巢湖市| 彩票| 武义县| 灵川县| 叙永县| 哈巴河县| 铅山县| 大荔县| 江源县| 普兰店市| 公主岭市| 汶上县| 磴口县| 昔阳县| 青阳县| 固镇县| 祁东县| 宜阳县| 太仆寺旗| 鄂伦春自治旗| 黑水县| 苏州市| 从江县| 商都县| 冷水江市|