欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實(shí)現(xiàn)多級(jí)菜單效果

 更新時(shí)間:2022年07月15日 10:03:36   作者:bugs_more_more  
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)多級(jí)菜單效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue實(shí)現(xiàn)多級(jí)菜單效果的具體代碼,供大家參考,具體內(nèi)容如下

效果圖:

效果說(shuō)明:

點(diǎn)擊父菜單,如果有子菜單就在其左側(cè)顯示出子菜單

思路:

通過(guò)遞歸的方式。

代碼:

子組件 MenuItem

// 子組件代碼
<template>
? ? <li>
? ? ? ? <span @click="toggle(model)"> {{ isFolder? "<" + model.menuName : model.menuName ? }}</span>
? ? ? ? <ul v-if="isFolder" v-show="open" style="position: absolute;left: -120px;top: 0px; width:100px; background-color: cadetblue;">
? ? ? ? ? ? <menuItems v-for="(item, index) in model.childTree" :model="item" :key="index"></menuItems>
? ? ? ? </ul>
? ? </li>
</template>
?
<script type="text/javascript">
? ? export default {
? ? ? ? // 組件遞歸必要條件,name屬性,然后在標(biāo)簽就可以通過(guò)name直接使用自己
? ? ? ? name: 'menuItems',
? ? ? ? props: ['model',],
? ? ? ? data() {
? ? ? ? ? ? return {
?? ??? ??? ??? ? // 控制子列表的顯示隱藏
?? ??? ??? ??? ?open: false
?? ??? ??? ?}
? ? ? ? },
? ? ? ? computed: {
? ? ? ? ? ? // 是否還有子列表需要渲染,作為v-if的判斷條件
? ? ? ? ? ? isFolder() {
? ? ? ? ? ? ? ? return this.model.childTree && this.model.childTree.length
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? methods: {
? ? ? ? ? ? // 切換列表顯示隱藏的方法
? ? ? ? ? ? toggle(mode) {
?? ??? ??? ??? ?
? ? ? ? ? ? ? ? if(this.isFolder) {
? ? ? ? ? ? ? ? ? ? this.open = !this.open
? ? ? ? ? ? ? ? }
?? ?/* ?? ??? ??? ?if(mode.id != undefined && this.open){
?? ??? ??? ??? ??? ?this.open = false;
?? ??? ??? ??? ?} */
? ? ? ? ? ? },
? ? ? ? }
? ? }
</script>
<style scoped>
?? ?ul,li {
?? ??? ?list-style: none;
?? ?}
</style>

父組件調(diào)用子組件

<template>
?? ?<!--http://www.dbjr.com.cn/css/378895.html-->
?? ?<view>
?? ??? ?<div style="position: absolute;left:400px;">
?? ??? ??? ?<ul>
?? ??? ??? ??? ?<menu-item v-for="(model, index) in list" :model="model" :key="index"></menu-item>
?? ??? ??? ?</ul>
?? ??? ?</div>
?? ?</view>
?? ?
</template>
?
<script>
?? ?import MenuItem from "../../components/MenuItem.vue"
?? ?export default {
?? ??? ?components:{
?? ??? ??? ?MenuItem
?? ??? ?},
?? ??? ?computed:{
?? ??? ??? ?
?? ??? ?},
?? ??? ?data() {
?? ??? ??? ?return {
?? ??? ??? ??? ?list: [ // 將菜單數(shù)據(jù)傳到菜單組件中就行了
?? ??? ??? ??? ?{
?? ??? ??? ??? ? ? ?"id": "1",
?? ??? ??? ??? ? ? ?"menuName": "菜單1",
?? ??? ??? ??? ? ? ?"childTree": [{
?? ??? ??? ??? ? ? ? ? ?"menuName": "項(xiàng)目進(jìn)度",
?? ??? ??? ??? ? ? ? ? ?"childTree": [{
?? ??? ??? ??? ? ? ? ? ? ? ?"menuName": "項(xiàng)目一",
?? ??? ??? ??? ? ? ? ? ? ? ?"childTree": [{ "menuName": "詳細(xì)信息" }]
?? ??? ??? ??? ? ? ? ? ?}]
?? ??? ??? ??? ? ? ?}, {
?? ??? ??? ??? ? ? ? ? ?"menuName": "任務(wù)安排"
?? ??? ??? ??? ? ? ?}]
?? ??? ??? ??? ?},?
?? ??? ??? ??? ?{
?? ??? ??? ??? ? ? ?"id": "2",
?? ??? ??? ??? ? ? ?"menuName": "菜單2"
?? ??? ??? ??? ?},?
?? ??? ??? ??? ?{
?? ??? ??? ??? ? ? ?"id": "3",
?? ??? ??? ??? ? ? ?"menuName": "菜單3"
?? ??? ??? ??? ?}]
?? ??? ??? ?};
?? ??? ?},
?? ??? ?methods:{
?? ??? ?}
?? ?}
</script>
?
<style>?? ?
?? ?ul,li{
?? ?list-style: none !important;
? ? ?}
</style>

結(jié)語(yǔ):

效果圖中是將子菜單顯示在父菜單的左側(cè),也可以直接通過(guò)把下面的樣式刪除,讓子菜單顯示子父菜單的右側(cè)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用vue實(shí)現(xiàn)打印頁(yè)面的幾種方法總結(jié)

    利用vue實(shí)現(xiàn)打印頁(yè)面的幾種方法總結(jié)

    在項(xiàng)目里有個(gè)打印功能,將頁(yè)面的部分內(nèi)容打印出來(lái),所以下面這篇文章主要給大家介紹了關(guān)于利用vue實(shí)現(xiàn)打印頁(yè)面的幾種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 一看就會(huì)的vuex實(shí)現(xiàn)登錄驗(yàn)證(附案例)

    一看就會(huì)的vuex實(shí)現(xiàn)登錄驗(yàn)證(附案例)

    這篇文章主要介紹了一看就會(huì)的vuex實(shí)現(xiàn)登錄驗(yàn)證(附案例),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 利用vue+elementUI實(shí)現(xiàn)部分引入組件的方法詳解

    利用vue+elementUI實(shí)現(xiàn)部分引入組件的方法詳解

    這篇文章主要給大家介紹了關(guān)于利用vue+elementUI實(shí)現(xiàn)部分引入組件的相關(guān)資料,以及介紹了vue引入elementUI報(bào)錯(cuò)的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 詳解vue中axios封裝與api接口封裝管理

    詳解vue中axios封裝與api接口封裝管理

    axios的封裝和api接口的統(tǒng)一管理,其實(shí)主要目的就是在幫助我們簡(jiǎn)化代碼和利于后期的更新維護(hù),在vue項(xiàng)目中,和后臺(tái)交互獲取數(shù)據(jù)這塊,我們通常使用的是axios庫(kù),本文就給大家介紹一下axios封裝與api接口封裝管理,需要的朋友可以參考下
    2023-06-06
  • vue 設(shè)置路由的登錄權(quán)限的方法

    vue 設(shè)置路由的登錄權(quán)限的方法

    這篇文章主要介紹了vue 設(shè)置路由的登錄權(quán)限的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • vue npm install 安裝某個(gè)指定的版本操作

    vue npm install 安裝某個(gè)指定的版本操作

    這篇文章主要介紹了vue npm install 安裝某個(gè)指定的版本操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue的編碼技巧與規(guī)范使用詳解

    Vue的編碼技巧與規(guī)范使用詳解

    這篇文章主要介紹了Vue的編碼技巧與規(guī)范使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn)

    vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn)

    本文主要介紹了vue項(xiàng)目展示pdf文件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Elemenu中el-table中使用el-popover選中關(guān)閉無(wú)效解決辦法(最新推薦)

    Elemenu中el-table中使用el-popover選中關(guān)閉無(wú)效解決辦法(最新推薦)

    這篇文章主要介紹了Elemenu中el-table中使用el-popover選中關(guān)閉無(wú)效解決辦法(最新推薦),因?yàn)樵趀l-table-column里,因?yàn)槭嵌嘈?使用trigger="manual"?時(shí),用v-model="visible"來(lái)控制時(shí),控件找不到這個(gè)值,才換成trigger="click",需要的朋友可以參考下
    2024-03-03
  • vue-echarts如何實(shí)現(xiàn)圖表組件封裝詳解

    vue-echarts如何實(shí)現(xiàn)圖表組件封裝詳解

    由于在項(xiàng)目中需要對(duì)數(shù)據(jù)進(jìn)行可視化處理,也就是用圖表展示,所以下面這篇文章主要給大家介紹了關(guān)于vue-echarts如何實(shí)現(xiàn)圖表組件封裝的相關(guān)資料,需要的朋友可以參考下
    2022-05-05

最新評(píng)論