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

vue3.0+element Plus實現(xiàn)頁面布局側(cè)邊欄菜單路由跳轉(zhuǎn)功能

 更新時間:2023年07月18日 10:45:12   作者:歡喜~999  
這篇文章主要介紹了vue3.0+element Plus實現(xiàn)頁面布局,側(cè)邊欄菜單路由跳轉(zhuǎn),需要的朋友可以參考下

一. 先在router.js文件中配置路由,將側(cè)邊欄中需要跳轉(zhuǎn)的頁面都添加到children中

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: "/project",
      name: "projectGroup",
      meta: {
        requiresAuth: true,
        title: "項目列表",
        navBreadcrumb: [
          { label: "項目列表", name: "projectSample", link: true },
        ],
      },
      component: () => import("../views/project/Index.vue"),
      children: [
        {
          path: "sample/:id",
          name: "projectGroup:sample",
          meta: {
            requiresAuth: true,
            title: "項目列表",
            navBreadcrumb: [
              { label: "項目列表", name: "projectSample", link: true },
            ],
          },
          component: () => import("../views/project/Sample.vue"),
        },
        {
          path: "alg/:id",
          name: "projectGroup:alg",
          meta: {
            requiresAuth: true,
            title: "項目列表",
            navBreadcrumb: [
              { label: "項目列表", name: "projectSample", link: true },
            ],
          },
          component: () => import("../views/project/Alg.vue"),
        },
      ],
    },
  ],
});

二. 在view目錄下新建一個文件,里面包含側(cè)邊欄要跳轉(zhuǎn)的頁面

三.  頁面樣式布局

1. 我選擇使用自定義組件BaseLayout.vue文件來設(shè)置header和aside樣式顯示

<template>
  <el-config-provider namespace="ep" :locale="zhCn">
//BaseHeader是我自己的定義的組件,為當前頁面的頭部
    <div class="top-header">
      <BaseHeader />
      <div>
        <user-avatar />
      </div>
    </div>
    <div class="app-main" v-if="userInfo !== null">
//BaseSide 自定義組件,為當前頁面的側(cè)邊欄
      <div class="base-side-main" v-if="props.hasBaseSide"><BaseSide /></div>
      <div
        :class="['content-main', mainClass]"
        :style="{ left: props.hasBaseSide ? '64px' : '0' }"
      >
        <slot></slot>
      </div>
    </div>
  </el-config-provider>
</template>

也可以使用element plus中的Container 布局容器 

 2. BaseHeader.vue文件里面為頁面頭部樣式,頭部樣式相對簡單

<template>
  <div class="top-nav-bar">
    <div class="app-title">
      <router-link :to="{ name: 'home' }"> 病理圖像AI自訓練中臺 </router-link
      ><el-tag
        effect="dark"
        type="danger"
        style="margin-left: 10px"
        v-if="envMode === 'test'"
      >
        測試版
      </el-tag>
    </div>
    <el-menu
      class="el-menu-bar"
      mode="horizontal"
      :ellipsis="false"
      :defaultActive="menuActive"
    >
      <el-menu-item index="3" @click="goPage('/dashboard')"
        >控制臺</el-menu-item
      >
      <el-menu-item index="1" @click="goPage('/alg')">我的算法</el-menu-item>
      <el-menu-item index="2" @click="goPage('/market')">應(yīng)用市場</el-menu-item>
      <el-menu-item index="4" @click="goPage('/project')"
        >項目列表</el-menu-item
      >
    </el-menu>
  </div>
</template>

3. BaseSide.vue文件里面是側(cè)邊欄樣式,這里是重點?。?!這里進行頁面路由跳轉(zhuǎn)設(shè)置

<template>
  <el-menu
    class="el-menu-vertical-demo"
    @open="handleOpen"
    @close="handleClose"
  >
    <div v-for="i in listProject?.ListProjectByTenant" :key="i.id">
//因為我的側(cè)邊欄數(shù)據(jù)是需要動態(tài)獲取的,所以這里的index不能相同,否則幾個側(cè)邊欄會同時展開時
      <el-sub-menu :index="i">
        <template #title>{{ i.name }}</template>
        <el-menu-item index="alg">
//這里使用<router-link>,通過屬性to來進行跳轉(zhuǎn),里面的name就是剛才在router.js文件中設(shè)置的,params這里包含的是路由跳轉(zhuǎn)時傳遞的參數(shù)
          <router-link
            :to="{
              name: 'projectGroup:alg',
              params: { id: i.id, name: i.name },
            }"
            >算法</router-link
          >
        </el-menu-item>
        <el-menu-item index="sample"
          ><router-link
            :to="{
              name: 'projectGroup:sample',
              params: { id: i.id, name: i.name },
            }"
            >樣本</router-link
          ></el-menu-item
        >
      </el-sub-menu>
    </div>
  </el-menu>
</template>

四. index.vue文件中引入剛才的組件

<template>
//因為我的數(shù)據(jù)是動態(tài)獲取,所以要先判斷一下是否有數(shù)據(jù),有數(shù)據(jù)再顯示側(cè)邊欄
  <BaseLayout :hasBaseSide="isProjectLoaded && projectListData.length">
    <PaddingLayout>
      <el-card class="table-card" shadow="never">
        <router-view></router-view>
      </el-card>
    </PaddingLayout>
  </AlgProjectLayout>
</template>

樣式如下:

到此這篇關(guān)于vue3.0+element Plus實現(xiàn)頁面布局側(cè)邊欄菜單路由跳轉(zhuǎn)功能的文章就介紹到這了,更多相關(guān)vue3.0 element Plus側(cè)邊欄菜單路由跳轉(zhuǎn)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue項目中使用particles實現(xiàn)粒子背景效果及遇到的坑(按鈕沒有點擊響應(yīng))

    vue項目中使用particles實現(xiàn)粒子背景效果及遇到的坑(按鈕沒有點擊響應(yīng))

    為了提高頁面展示效果,登錄界面內(nèi)容比較單一的,粒子效果作為背景經(jīng)常使用到,vue工程中利用vue-particles可以很簡單的實現(xiàn)頁面的粒子背景效果,本文給大家分享在實現(xiàn)過程中遇到問題,需要的朋友一起看看吧
    2020-02-02
  • Vue Element Sortablejs實現(xiàn)表格列的拖拽案例詳解

    Vue Element Sortablejs實現(xiàn)表格列的拖拽案例詳解

    這篇文章主要介紹了Vue Element Sortablejs實現(xiàn)表格列的拖拽案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Vue條件渲染之v-if、v-else-if、v-else的完整指南

    Vue條件渲染之v-if、v-else-if、v-else的完整指南

    v-if和v-else是Vue.js中的控制指令,用于條件性地渲染一塊內(nèi)容,這些內(nèi)容只會在指令表達式返回真值時才會渲染,這篇文章主要介紹了Vue條件渲染之v-if、v-else-if、v-else的完整指南,需要的朋友可以參考下
    2026-03-03
  • vue中各組件之間傳遞數(shù)據(jù)的方法示例

    vue中各組件之間傳遞數(shù)據(jù)的方法示例

    Vue 的組件作用域都是孤立的,不允許在子組件的模板內(nèi)直接引用父組件的數(shù)據(jù)。必須使用特定的方法才能實現(xiàn)組件之間的數(shù)據(jù)傳遞。下面這篇文章主要給大家介紹了關(guān)于vue中各組件之間傳遞數(shù)據(jù)的方法示例,需要的朋友可以參考學習。
    2017-07-07
  • Vue使用路由鉤子攔截器beforeEach和afterEach監(jiān)聽路由

    Vue使用路由鉤子攔截器beforeEach和afterEach監(jiān)聽路由

    這篇文章主要介紹了Vue使用路由鉤子攔截器beforeEach和afterEach監(jiān)聽路由,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 一篇文章學會Vue中間件管道

    一篇文章學會Vue中間件管道

    這篇文章主要給大家介紹了如何通過一篇文章學會Vue中間件管道的相關(guān)資料,什么是中間件管道?中間件管道是一堆不同的中間件并行運行,本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-06-06
  • 解決el-dialog與el-tabs一起用卡死的問題

    解決el-dialog與el-tabs一起用卡死的問題

    在el-dialog中嵌入el-tabs和el-transfer時,關(guān)閉dialog會導致瀏覽器卡死,通過排查發(fā)現(xiàn)是destroy-on-close屬性和el-tabs沖突導致的,解決方法是去掉destroy-on-close屬性或給el-tabs添加v-if
    2026-01-01
  • Vue3中導航守衛(wèi)結(jié)合Axios實現(xiàn)token認證機制

    Vue3中導航守衛(wèi)結(jié)合Axios實現(xiàn)token認證機制

    本文主要介紹了Vue3中導航守衛(wèi)結(jié)合Axios實現(xiàn)token認證機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • Vue結(jié)合SignalR實現(xiàn)前后端實時消息同步

    Vue結(jié)合SignalR實現(xiàn)前后端實時消息同步

    這篇文章主要為大家詳細介紹了Vue結(jié)合SignalR實現(xiàn)前后端實時消息同步,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • 使用Vue實現(xiàn)防篡改的水印

    使用Vue實現(xiàn)防篡改的水印

    我們在平時上網(wǎng)的時候會看到有些圖片是加水印的,一般水印往往是后端來做的,不過有些站點要保護的知識產(chǎn)權(quán)類型比較多,不光是圖片,可能還有視頻或者文字,所以我們水印的作用,就是給他做一個適當?shù)南拗?本文就給大家介紹一下如何使用Vue實現(xiàn)防篡改的水印
    2023-08-08

最新評論

浏阳市| 临朐县| 若尔盖县| 青州市| 昌吉市| 新泰市| 金乡县| 红安县| 宽城| 灵丘县| 滕州市| 贵阳市| 嘉兴市| 赫章县| 银川市| 茂名市| 湛江市| 静安区| 金川县| 利津县| 昌平区| 博客| 英吉沙县| 仙游县| 隆尧县| 武定县| 新郑市| 乐业县| 壤塘县| 新泰市| 凌云县| 玉林市| 特克斯县| 龙游县| 巨鹿县| 崇仁县| 开鲁县| 东明县| 民和| 通化市| 奉节县|