Vue2組件tree實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形菜單
一直打算偷懶使用個(gè)現(xiàn)成的樹(shù)組件,但是在github上找了一大圈沒(méi)有找到真正滿(mǎn)足應(yīng)用開(kāi)發(fā)的樹(shù)組件,所以沒(méi)辦法只能自己寫(xiě)了一個(gè),開(kāi)源出來(lái)希望可以幫助到需要的人,同時(shí)如果大家覺(jué)得好用,我可以順帶騙騙★(希望喜歡的朋友對(duì)我體力的肯定可以點(diǎn)下★ ),由于我也算剛接觸vue,所以難免有所考慮不周的地方,希望大家在issue里面指正。組件重點(diǎn)是父子組件數(shù)據(jù)的共享和狀態(tài)保持,我是利用了下vuex的思路,采用一個(gè)控制倉(cāng)庫(kù)完成。
github 地址 vue-tree
How to run demo
npm install npm run dev
效果圖

示例
<template>
<div style="width:300px;">
<tree ref ='tree' :treeData="treeData" :options="options" @node-click='handleNode'/>
</div>
</template>
<script>
import Tree from '../components/tree/tree.vue'
export default {
name: 'test',
data () {
return {
options: {
showCheckbox: true,
search: {
useInitial: true,
useEnglish: false,
customFilter: null
}
},
treeData: [
{
id: 1,
label: '一級(jí)節(jié)點(diǎn)',
open: true,
checked: false,
parentId: null,
visible: true,
searched: false,
children: [
{
id: 2,
label: '二級(jí)節(jié)點(diǎn)-1',
checked: false,
parentId: 1,
searched: false,
visible: true
},
{
label: '二級(jí)節(jié)點(diǎn)-2',
open: true,
checked: false,
id: 3,
parentId: 1,
visible: true,
searched: false,
children: [
{
id: 4,
parentId: 3,
label: '三級(jí)節(jié)點(diǎn)-1',
visible: true,
searched: false,
checked: false
},
{
id: 5,
label: '三級(jí)節(jié)點(diǎn)-2',
parentId: 3,
searched: false,
visible: true,
checked: false
}
]
},
{
label: '二級(jí)節(jié)點(diǎn)-3',
open: true,
checked: false,
id: 6,
parentId: 1,
visible: true,
searched: false,
children: [
{
id: 7,
parentId: 6,
label: '三級(jí)節(jié)點(diǎn)-4',
checked: false,
searched: false,
visible: true
},
{
id: 8,
label: '三級(jí)節(jié)點(diǎn)-5',
parentId: 6,
checked: false,
searched: false,
visible: true
}
]
}
]
}
]
}
},
components: {Tree}
}
</script>
屬性

options: {
showCheckbox: true, //是否支持多選
search: {
useInitial: true, //是否支持首字母搜索
useEnglish: false, //是否是英文搜索
customFilter: null // 自定義節(jié)點(diǎn)過(guò)濾函數(shù)
}
/* 節(jié)點(diǎn)元素 */
{
id: 1, //節(jié)點(diǎn)標(biāo)志
label: '一級(jí)節(jié)點(diǎn)', //節(jié)點(diǎn)名稱(chēng)
open: true, // 是否打開(kāi)節(jié)點(diǎn)
checked: false, //是否被選中
parentId: null, //父級(jí)節(jié)點(diǎn)Id
visible: true, //是否可見(jiàn)
searched: false, //是否是搜索值
children: [] //子節(jié)點(diǎn)
}
方法

事件

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue Element左側(cè)無(wú)限級(jí)菜單實(shí)現(xiàn)
- Vue.js組件tree實(shí)現(xiàn)無(wú)限級(jí)樹(shù)形菜單
- vue實(shí)現(xiàn)多級(jí)菜單效果
- Vue+Element ui實(shí)現(xiàn)樹(shù)形控件右鍵菜單
- vue實(shí)現(xiàn)右鍵彈出菜單
- vue-router+vuex addRoutes實(shí)現(xiàn)路由動(dòng)態(tài)加載及菜單動(dòng)態(tài)加載
- Vue.js 遞歸組件實(shí)現(xiàn)樹(shù)形菜單(實(shí)例分享)
- 基于vue.js實(shí)現(xiàn)側(cè)邊菜單欄
- Vue實(shí)現(xiàn)導(dǎo)航欄菜單
- Vue3.0實(shí)現(xiàn)無(wú)限級(jí)菜單
相關(guān)文章
Vue響應(yīng)式原理深入解析及注意事項(xiàng)
Vue 最顯著的一個(gè)功能是響應(yīng)系統(tǒng) —— 模型只是普通對(duì)象,修改它則更新視圖。下面這篇文章主要給大家深入講解了關(guān)于Vue的響應(yīng)式原理,以及Vue響應(yīng)式的一些注意事項(xiàng),需要的朋友下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
Vue點(diǎn)擊切換Class變化,實(shí)現(xiàn)Active當(dāng)前樣式操作
這篇文章主要介紹了Vue點(diǎn)擊切換Class變化,實(shí)現(xiàn)Active當(dāng)前樣式操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
vue權(quán)限管理系統(tǒng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue權(quán)限管理系統(tǒng)的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Vue.js學(xué)習(xí)筆記之常用模板語(yǔ)法詳解
本篇文章主要介紹了Vue.js學(xué)習(xí)筆記之常用模板語(yǔ)法詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
vue仿網(wǎng)易云音樂(lè)播放器界面的簡(jiǎn)單實(shí)現(xiàn)過(guò)程
興趣乃學(xué)習(xí)的動(dòng)力,想自己動(dòng)手寫(xiě)個(gè)音樂(lè)播放器,查了網(wǎng)上一些博客寫(xiě)了一個(gè),這篇文章主要給大家介紹了關(guān)于vue仿網(wǎng)易云音樂(lè)播放器界面的簡(jiǎn)單實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2021-11-11
詳解如何使用 vue-cli 開(kāi)發(fā)多頁(yè)應(yīng)用
本篇文章主要介紹了詳解如何使用 vue-cli 開(kāi)發(fā)多頁(yè)應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12

