樹形表格是一種非常常見的數(shù)據(jù)展示方式,適用于表格數(shù)據(jù)之間具有父子關(guān)系的情況。Vue提供了treetable組件,方便我們快速構(gòu)建一個(gè)樹形表格。
首先,我們需要在頁面中引入Vue和treetable組件:
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-treetable"></script>
接著,我們需要準(zhǔn)備一個(gè)數(shù)據(jù)源,這個(gè)數(shù)據(jù)源應(yīng)該是一個(gè)嵌套的對象數(shù)組,每個(gè)對象都應(yīng)該包括一個(gè)id字段和一個(gè)children字段(如果有子節(jié)點(diǎn)的話),例如:
// 數(shù)據(jù)源 const dataSource = [ { id: 1, name: '父節(jié)點(diǎn)1', children: [ { id: 2, name: '子節(jié)點(diǎn)1' } ] }, { id: 3, name: '父節(jié)點(diǎn)2', children: [ { id: 4, name: '子節(jié)點(diǎn)2.1', children: [ { id: 5, name: '子節(jié)點(diǎn)2.1.1' } ] }, { id: 6, name: '子節(jié)點(diǎn)2.2' } ] } ];
接下來,我們就可以使用treetable組件來渲染這個(gè)樹形表格了,組件的使用非常簡單,只需要將數(shù)據(jù)源和表頭數(shù)據(jù)傳遞給組件即可:
<div id="app"> <tree-table :data="dataSource" :columns="columns"></tree-table> </div> // 表頭數(shù)據(jù) const columns = [ { title: '節(jié)點(diǎn)名稱', key: 'name' } ]; // 初始化 Vue 實(shí)例 new Vue({ el: '#app', data: { dataSource: dataSource, columns: columns } });
我們也可以通過slot來自定義每一列的內(nèi)容,這在實(shí)際項(xiàng)目中非常有用,例如我們可以在表格中顯示一個(gè)操作按鈕:
<tree-table :data="dataSource" :columns="columns"> <template slot="name" scope="props"> {{ props.row.name }} <button @click="handleClick(props.row)">操作</button> </template> </tree-table>
以上就是Vue中使用treetable組件構(gòu)建樹形表格的基本示例,希望能對大家有所幫助。