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

vue3中的伸縮菜單組件

 更新時(shí)間:2023年01月14日 14:16:22   作者:阿wei程序媛  
這篇文章主要介紹了vue3中的伸縮菜單組件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue3伸縮菜單組件

最近一直在學(xué)習(xí)分裝組件,學(xué)到了一個(gè)伸縮菜單欄組件,淺淺的記錄一下,想要封裝菜單的,代碼可以直接拿去用,稍作修改即可!

效果圖

1.在components下面創(chuàng)建一個(gè)container的文件,在container文件下面創(chuàng)建一個(gè)src文件,然后在src文件下創(chuàng)建index.vue文件

這個(gè)文件里寫入 

<template>
    <div class="common-layout">
      <el-container>
        <el-aside width="auto">
<!--        側(cè)邊菜單欄組件-->
        <nav-side v-model:collapse="isCollapse"></nav-side>
        </el-aside>
        <el-container>
          <el-header>
<!--          頭部組件-->
            <nav-header v-model:collapse="isCollapse"></nav-header>
          </el-header>
          <el-main>
            <router-view></router-view>
          </el-main>
        </el-container>
      </el-container>
    </div>
</template>
<script lang="ts" setup>
import {ref} from 'vue'
import navHeader from './navHeader/index.vue'
import navSide from './navSide/index.vue'
const isCollapse=ref<boolean>(false)
 
</script>
 
<style lang="scss" scoped>
 
.el-header {
 padding: 0;
  border-bottom: 1px solid #eeeeee;
}
</style>

2.在router文件下的index.ts寫入 

// @ts-ignore
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
const routes: Array<RouteRecordRaw> = [
    {
        path:'/',
        component:()=>import('../components/container/src/index.vue'),
        children:[
            {
                path: '/',
                name: 'home',
                component:()=>import('../view/home.vue'),
            }
        ]
    },
 
]
 
const router = createRouter({
    history: createWebHistory(),
    routes
})
 
export default router

3.在components下面創(chuàng)建一個(gè)container的文件,在container文件下面創(chuàng)建一個(gè)src文件,然后在src文件下創(chuàng)建navHeader文件,在navHeader文件下創(chuàng)建index.vue文件

在文件里寫入

<template>
  <div class="header">
    <div @click="shrink">
<!--        伸縮圖標(biāo)-->
      <Expand v-if="collapse==true"></Expand>
      <Fold v-else></Fold>
    </div>
  </div>
</template>
 
<script lang="ts" setup>
import {ref} from 'vue'
let props=defineProps<{
  collapse:Boolean
}>()
let emits=defineEmits(['update:collapse'])
const shrink=()=>{
  emits('update:collapse',!props.collapse)
}
</script>
 
<style lang="scss" scoped>
.header {
  height: 60px;
  padding: 0 20px;
  display: flex;
  align-items: center;
}
</style>

4.在components下面創(chuàng)建一個(gè)container的文件,在container文件下面創(chuàng)建一個(gè)src文件,然后在src文件下創(chuàng)建navSide文件,在navSide文件下創(chuàng)建index.vue文件 

在文件里寫入

<template>
  <el-menu
      default-active="1"
      class="el-menu-vertical-demo"
      :collapse="collapse"
  >
    <el-menu-item index="1">
      <el-icon><House></House></el-icon>
      <template #title>導(dǎo)航一</template>
    </el-menu-item>
    <el-menu-item index="2">
      <el-icon><Message></Message></el-icon>
      <template #title>導(dǎo)航二</template>
    </el-menu-item>
    <el-menu-item index="3">
      <el-icon><Grid></Grid></el-icon>
      <template #title>導(dǎo)航三</template>
    </el-menu-item>
    <el-menu-item index="4">
      <el-icon><Tools></Tools></el-icon>
      <template #title>導(dǎo)航四</template>
    </el-menu-item>
  </el-menu>
</template>
 
<script lang="ts" setup>
import {ref} from 'vue'
let props=defineProps<{
  collapse:Boolean
}>()
</script>
 
<style lang="scss" scoped>
.el-menu-vertical-demo:not(.el-menu--collapse) {
  width: 200px;
  min-height: 400px;
}
</style>

這就是封裝伸縮菜單欄組件的代碼。

總結(jié)

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

相關(guān)文章

  • Vue是怎么渲染template內(nèi)的標(biāo)簽內(nèi)容的

    Vue是怎么渲染template內(nèi)的標(biāo)簽內(nèi)容的

    這篇文章主要介紹了Vue是怎么渲染template內(nèi)的標(biāo)簽內(nèi)容的,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue watch immediate方法用法詳解

    vue watch immediate方法用法詳解

    這篇文章主要介紹了vue watch immediate方法用法詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Vue3父子組件相互調(diào)用方法舉例詳解

    Vue3父子組件相互調(diào)用方法舉例詳解

    這篇文章主要給大家介紹了關(guān)于Vue3父子組件相互調(diào)用方法的相關(guān)資料,vue中我們常常用到組件,那么組件中互相調(diào)用也是經(jīng)常遇到的,需要的朋友可以參考下
    2023-08-08
  • vue中modal傳輸數(shù)據(jù)并刷新部分頁(yè)面數(shù)據(jù)方式

    vue中modal傳輸數(shù)據(jù)并刷新部分頁(yè)面數(shù)據(jù)方式

    這篇文章主要介紹了vue中modal傳輸數(shù)據(jù)并刷新部分頁(yè)面數(shù)據(jù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue組件中實(shí)現(xiàn)嵌套子組件案例

    vue組件中實(shí)現(xiàn)嵌套子組件案例

    這篇文章主要介紹了vue組件中實(shí)現(xiàn)嵌套子組件案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue組件間通信的實(shí)現(xiàn)方法講解

    Vue組件間通信的實(shí)現(xiàn)方法講解

    組件是vue.js最強(qiáng)大的功能之一,而組件實(shí)例的作用域是相互獨(dú)立的,這就意味著不同組件之間的數(shù)據(jù)無法相互進(jìn)行直接的引用,所以組件間的相互通信是非常重要的
    2023-01-01
  • Vue不能下載xls以及文件亂碼問題解決

    Vue不能下載xls以及文件亂碼問題解決

    最近工作中遇到了一些問題,通過查找相關(guān)資料終于找到了相關(guān)的解決方法,這篇文章主要給大家介紹了關(guān)于Vue不能下載xls以及文件亂碼問題解決的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • vue對(duì)象或者數(shù)組中數(shù)據(jù)變化但是視圖沒有更新問題及解決

    vue對(duì)象或者數(shù)組中數(shù)據(jù)變化但是視圖沒有更新問題及解決

    這篇文章主要介紹了vue對(duì)象或者數(shù)組中數(shù)據(jù)變化但是視圖沒有更新問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue history 模式打包部署在域名的二級(jí)目錄的配置指南

    vue history 模式打包部署在域名的二級(jí)目錄的配置指南

    這篇文章主要介紹了vue history 模式打包部署在域名的二級(jí)目錄的配置指南 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • element前端實(shí)現(xiàn)壓縮圖片的功能

    element前端實(shí)現(xiàn)壓縮圖片的功能

    本文主要介紹了element前端實(shí)現(xiàn)壓縮圖片的功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論

绥江县| 固阳县| 天峨县| 黄大仙区| 元江| 红河县| 泰来县| 大渡口区| 富锦市| 湖北省| 洞口县| 宁海县| 合山市| 贵阳市| 叙永县| 荃湾区| 科技| 凤山市| 六枝特区| 三原县| 宁南县| 新密市| 元朗区| 民权县| 木兰县| 静海县| 道孚县| 南阳市| 青阳县| 黎平县| 临泉县| 攀枝花市| 庆云县| 丰城市| 敦煌市| 屏东市| 遵义县| 社会| 新宁县| 永宁县| 柘荣县|