Ant Design Vue是一個優秀的Vue組件庫,其中的樹形控件Tree提供了一種便捷的方式來展示組織結構。Ant Design Vue Tree支持多選、可拖拽、異步加載等特性,可應用于多種場景。
使用Ant Design Vue Tree需要首先引入組件庫及樣式:
import Vue from 'vue'; import Antd from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; Vue.use(Antd);
接著在組件中使用Tree,下面是一個簡單示例:
<template> <div> <a-tree :tree-data="data" :multiple="true" :checkable="true" @onCheck="handleCheck"></a-tree> </div> </template> <script> export default { data() { return { data: [ { title: 'Node 1', key: '0', children: [ { title: 'Child Node 1', key: '0-0' }, { title: 'Child Node 2', key: '0-1' } ] }, { title: 'Node 2', key: '1', children: [ { title: 'Child Node 3', key: '1-0' }, { title: 'Child Node 4', key: '1-1' } ] } ] } }, methods: { handleCheck(checkedKeys) { console.log('Checked Keys:', checkedKeys); } } } </script>
在代碼中,我們定義了一個樹形數據結構,并將其傳入Tree組件的tree-data屬性。同時,我們設置multiple和checkable屬性,開啟了多選和可勾選功能,并通過onCheck事件監聽選中的節點。
除了以上特性,Ant Design Vue Tree還支持異步加載:
<a-tree :tree-data="data" :multiple="true" :checkable="true" :load-data="loadData" @onCheck="handleCheck"></a-tree> methods: { loadData(node) { return new Promise(resolve =>{ setTimeout(() =>{ node.children = [ { title: `Leaf ${node.key}-0`, key: `${node.key}-0` }, { title: `Leaf ${node.key}-1`, key: `${node.key}-1` } ]; resolve(); }, 1000); }); } }
在這個示例中,我們使用了loadData屬性,并傳入了一個返回Promise的異步加載函數。當用戶展開節點時,異步加載函數會被調用,并且需要調用resolve函數來通知組件數據已經更新。
總之,Ant Design Vue Tree是一個強大的組件,為我們呈現樹形數據提供了很大的便利。相信隨著使用的深入,我們會有更多的發現和認識。