国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue3+elementui-plus實(shí)現(xiàn)無(wú)限遞歸菜單

這篇具有很好參考價(jià)值的文章主要介紹了vue3+elementui-plus實(shí)現(xiàn)無(wú)限遞歸菜單。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

效果圖
vue3+js elementplus的menu菜單無(wú)限,elementui,vue.js,前端

vue3+js elementplus的menu菜單無(wú)限,elementui,vue.js,前端

vue3+js elementplus的menu菜單無(wú)限,elementui,vue.js,前端

實(shí)現(xiàn)方式是:通過(guò)給定的數(shù)據(jù)結(jié)構(gòu)層數(shù)來(lái)動(dòng)態(tài)生成多級(jí)菜單

menu.vue

<template>
  <el-menu
      :default-active="activeIndex"
      class="el-menu-demo"
      mode="horizontal"
      @select="handleSelect"
      background-color="#f8f8f9"
      style="margin-top: 20px;margin-left: 1px;"
  >
    <Childrenmenu v-for="menuItem in menuItems" :key="menuItem.value" :item="menuItem" />
  </el-menu>
</template>

<script setup>
import Childrenmenu from "./childrenmenu";
const menuItems = [
	  {
	    value: '1',
	    label: '菜單1',
	    children: [
	      {
	        value: '1-1',
	        label: '子菜單1-1',
	        children: [
	          { value: '1-1-1', label: '子菜單1-1-1' },
	          { value: '1-1-2', label: '子菜單1-1-2' },
	        ],
	      },
	      { value: '1-2', label: '子菜單1-2' },
	    ],
	  },
	  {
	    value: '2',
	    label: '菜單2',
	    children: [
	      { value: '2-1', label: '子菜單2-1' },
	      {
	        value: '2-2',
	        label: '子菜單2-2',
	        children: [
	          { value: '2-2-1', label: '子菜單2-2-1' },
	          { value: '2-2-2', label: '子菜單2-2-2' },
	        ],
	      },
	    ],
	  },
	  {
	    value: '3',
	    label: '菜單3',
	    children: [
	      {
	        value: '3-1',
	        label: '子菜單3-1',
	        children: [
	          {
	            value: '3-1-1',
	            label: '子菜單3-1-1',
	            children: [
	              { value: '3-1-1-1', label: '子菜單3-1-1-1' },
	              { value: '3-1-1-2', label: '子菜單3-1-1-2' },
	            ],
	          },
	        ],
	      },
	    ],
	  },
	];
	
const handleSelect = async (key, keyPath) => {
	 console.log(key, keyPath)
}
</script>
childrenmenu.vue

<template>
  <template v-if="item.children">
    <el-sub-menu :index="item.value">
      <template #title>{{ item.label }}</template>
      <Childrenmenu v-for="childItem in item.children" :key="childItem.value" :item="childItem" />
    </el-sub-menu>
  </template>
  <template v-else>
    <el-menu-item :index="item.value">{{ item.label }}</el-menu-item>
  </template>
</template>

<script setup>
import { defineProps } from 'vue';

const props = defineProps(['item']);
</script>

<style scoped>

</style>

下面的方法可以實(shí)現(xiàn)重置菜單選項(xiàng)為默認(rèn)項(xiàng)(需求場(chǎng)景:左側(cè)菜單切換時(shí),上方菜單就要重置為默認(rèn)選項(xiàng))

<el-menu
      :key="menuKey"
      :default-active="activeIndex"
      class="el-menu-demo"
      mode="horizontal"
      @select="handleSelect"
      background-color="#f8f8f9"
      style="margin-left: 1px;"
  >
    <Childrenmenu v-for="menuItem in menuItems" :key="menuItem.value" :item="menuItem" />
  </el-menu>

<script setup>
const menuKey = ref(0);
//監(jiān)聽(tīng)切換事件
watch(() => stationsStore.stationId, (newValue, oldValue) => {
  menuKey.value += 1;
});

通過(guò)給el-menu添加:key="menuKey"實(shí)現(xiàn)。
實(shí)現(xiàn)原理::key=“menuKey” 是 Vue 中的一個(gè)特殊語(yǔ)法,用于控制組件的重新渲染。當(dāng)一個(gè)組件的 key 值發(fā)生變化時(shí),Vue 會(huì)認(rèn)為這是一個(gè)新的組件實(shí)例,會(huì)強(qiáng)制重新創(chuàng)建和渲染這個(gè)組件。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-856950.html

到了這里,關(guān)于vue3+elementui-plus實(shí)現(xiàn)無(wú)限遞歸菜單的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vue3+ts+elementui-plus二次封裝彈框

    一、彈框組件BaseDialog

    2024年02月15日
    瀏覽(27)
  • vue3項(xiàng)目創(chuàng)建(vite3+ts+elementui-plus)

    vue3項(xiàng)目創(chuàng)建(vite3+ts+elementui-plus)

    目的:vue3+vite+ts 安裝依賴,安裝vite的工具 Vite下一代的前端工具鏈為開(kāi)發(fā)提供極速響應(yīng)v4.3 創(chuàng)建工程 –template vue-ts 后面的是配置模板,有很多,也有react,官網(wǎng)有介紹 啟動(dòng)工程 安裝路由 配置vite-env.d.ts 為了讓ts識(shí)別.vue文件 安裝element-plus 注意vue3用的是element-plus別裝錯(cuò)版本了

    2024年02月16日
    瀏覽(20)
  • VUE3 + Elementui-Plus 之 樹形組件el-tree 一鍵展開(kāi)(收起);一鍵全選(不全選)

    VUE3 + Elementui-Plus 之 樹形組件el-tree 一鍵展開(kāi)(收起);一鍵全選(不全選)

    實(shí)現(xiàn)步驟: tree組件部分: ts部分: 頁(yè)面效果: 默認(rèn)狀態(tài) 展開(kāi)狀態(tài) 折疊狀態(tài) 全選狀態(tài) 全不選狀態(tài) 注意:以上方法會(huì)展開(kāi)或折疊所有節(jié)點(diǎn);全選或全不選節(jié)點(diǎn)。 問(wèn)題:數(shù)據(jù)量過(guò)大以上操作會(huì)有明顯卡頓;有高效解決方法的朋友可以交流。

    2024年04月11日
    瀏覽(30)
  • Vue3后臺(tái)管理系統(tǒng)Element-plus_側(cè)邊欄制作_無(wú)限遞歸

    Vue3后臺(tái)管理系統(tǒng)Element-plus_側(cè)邊欄制作_無(wú)限遞歸

    在home.view中添加代碼 ?2 創(chuàng)建一個(gè)全局組件 ?效果如圖

    2024年02月09日
    瀏覽(22)
  • vue3+element-plus 通過(guò)v-infinite實(shí)現(xiàn)下拉滾動(dòng)無(wú)限加載

    vue3+element-plus 通過(guò)v-infinite實(shí)現(xiàn)下拉滾動(dòng)無(wú)限加載

    v-infinite官網(wǎng) v-infinite-scroll無(wú)限滾動(dòng)組件使用詳解 ?官網(wǎng)給到的基礎(chǔ)案例: 自己寫了一個(gè)簡(jiǎn)單的demo: 當(dāng)使用v-infinite時(shí),控制臺(tái)會(huì)報(bào)錯(cuò): ?原因: 官方上的Issues解釋是需要nextTick()之后再去顯示 解決方法是組件掛載完成再去顯示el-select組件 所以在上面demo中select組件加了v-if,

    2024年02月09日
    瀏覽(25)
  • 【前端vue升級(jí)】vue2+js+elementUI升級(jí)為vue3+ts+elementUI plus

    【前端vue升級(jí)】vue2+js+elementUI升級(jí)為vue3+ts+elementUI plus

    gogo code 是一個(gè)基于 AST (源代碼的抽象語(yǔ)法結(jié)構(gòu)樹狀表現(xiàn)形式)的 JavaScript/Typescript/HTML 代碼轉(zhuǎn)換工具,可以用它來(lái)構(gòu)建一個(gè)代碼轉(zhuǎn)換程序來(lái)幫助自動(dòng)化完成如框架升級(jí)、代碼重構(gòu)、多平臺(tái)轉(zhuǎn)換等工作。 當(dāng)前 GoGoCode 支持解析和操作如下類型的代碼: ○JavaScript(JSX) ○Typescript

    2024年02月12日
    瀏覽(31)
  • elementUi重置Select選擇器樣式、option、deep、vue3、plus

    樣式標(biāo)簽屬性為 style scoped lang=\\\"scss\\\"/style

    2024年02月14日
    瀏覽(23)
  • Vue3:Elemenu-Plus遞歸型菜單組件封裝(2)

    ? ? ? ? 在上一篇文章中,以Vue2的選項(xiàng)式 API風(fēng)格,封裝了遞歸型菜單組件,但是這其中存在著一些問(wèn)題,例如: ????????【1】子組件menuList.vue中,通過(guò)this.$emit()方式定義的事件,在Vue3組合式API風(fēng)格父組件中可能會(huì)被執(zhí)行多次。之所以說(shuō)是可能,是因?yàn)槲疫@測(cè)試中確實(shí)遇

    2024年02月13日
    瀏覽(25)
  • 利用級(jí)聯(lián)選擇器實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)【vue + elementUI Plus | uViewUI】

    利用級(jí)聯(lián)選擇器實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)【vue + elementUI Plus | uViewUI】

    行政區(qū)劃代碼數(shù)據(jù)下載 github 鏈接 首先獲得省市區(qū)三級(jí)聯(lián)動(dòng)數(shù)據(jù) pca-code.json 放置在項(xiàng)目文件夾內(nèi) 數(shù)據(jù)格式如圖: elementUI 級(jí)聯(lián)選擇器 props elementui 級(jí)聯(lián)選擇器api提供 props 將value,label,children指定為當(dāng)前數(shù)據(jù)的自定義屬性值 通過(guò) :props=“cityProps” 2. getCheckedNodes 綁定值變化時(shí)觸

    2024年02月09日
    瀏覽(32)
  • 基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 高校漢服租賃網(wǎng)站的 設(shè)計(jì)與實(shí)現(xiàn)

    基于Java+SpringBoot+Mybaties-plus+Vue+ElementUI 高校漢服租賃網(wǎng)站的 設(shè)計(jì)與實(shí)現(xiàn)

    高校漢服租賃網(wǎng)站分為普通用戶以及管理員兩類 ?????????????????普通用戶: 注冊(cè)、登錄系統(tǒng)、查看漢服首頁(yè)發(fā)帖公告信息、 ????????????????????????????????交流論壇(發(fā)帖、查看帖子、評(píng)論)、 ????????????????????????????????公告

    2024年02月10日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包