今天要介紹的是一款基于Vue框架的樹形菜單demo。樹形菜單是指將一組相關聯的數據以樹形結構展示的菜單,用戶可以通過點擊展開和關閉節點層級,以此來訪問、操作相關聯的數據。
Vue框架是一款現代的、漸進式的JavaScript框架,它通過數據和視圖的雙向綁定機制使得開發者能夠更方便地構建用戶界面,提高開發效率。而本樹形菜單demo則是利用了Vue框架的這一優點構建而成,下面將介紹具體實現方法。
<template><div class="menu"><ul><li v-for="(item,index) in data" :key="index"><div v-if="item.children"><i :class="item.open ? 'el-icon-arrow-down' : 'el-icon-arrow-right'" @click="handle(item)" ></i><span></span>{{item.label}} <my-menu :data="item.children" v-show="item.open"></div><div v-else>{{item.label}}</div></li></ul></div></template><script>export default { name: 'my-menu', props: { data: { type: Array, default: [] } }, methods: { handle (item) { if (item.children) { item.open = !item.open } } } } </script>
上述代碼為本樹形菜單demo的主要實現,首先在模板中定義一個menu的class作為樹形結構的容器,使用v-for指令遍歷數據數組,將每個節點轉化為一個li元素進行渲染。
接著,通過判斷每個節點是否有子節點,來展示不同的結構,如果該節點有子節點,則渲染一個帶有箭頭圖標的div元素,同時綁定一個@click事件監聽器,當用戶點擊該圖標時會觸發handle方法。
handle方法是本樹形菜單的核心,它負責實現節點的展開和折疊。當用戶點擊箭頭圖標時,會首先判斷該節點是否有子節點,如果有,則通過修改節點的open屬性來記錄節點的展開和折疊狀態。同時,通過v-show指令來控制該節點的子節點是否顯示。
最后,如果該節點沒有子節點,則直接渲染一個不帶箭頭圖標的div元素作為葉子節點,該節點無法展開和折疊。
以上就是本樹形菜單demo的具體實現方法,簡單、易懂、易于擴展,非常適合Vue框架的初學者們使用。相信通過本文的介紹,讀者們已經掌握了如何使用Vue框架來構建樹形菜單的基本方法。
上一篇java 與和短路與
下一篇css 分辨率適配