Vue Treeselect是一個(gè)基于Vue的可定制化樹形選擇器組件,支持異步加載、搜索、選擇/取消選擇所有子節(jié)點(diǎn)等功能。在Vue中使用該組件需要先在需要的組件中引用Treeselect,但是如果在多個(gè)組件中都需要使用Treeselect則需要全局注冊。
// 引入Vue和Treeselect
import Vue from 'vue'
import Treeselect from '@riophae/vue-treeselect'
// 全局注冊Treeselect
Vue.component('treeselect', Treeselect)
當(dāng)Treeselect全局注冊之后,在任何組件中都可以直接引用并使用Treeselect,而不需要在每個(gè)組件中重復(fù)引用。
在進(jìn)行全局注冊的時(shí)候,可以將Treeselect注冊為一個(gè)全局組件,也可以將其注冊為一個(gè)插件。
// 全局注冊Treeselect為一個(gè)插件
import Vue from 'vue'
import Treeselect from '@riophae/vue-treeselect'
Vue.use(Treeselect)
如果Treeselect被注冊為一個(gè)插件,那么就可以在任何Vue實(shí)例中使用Treeselect的全部功能。在注冊成插件的時(shí)候,也可以傳入一個(gè)選項(xiàng)對象,來配置Treeselect的默認(rèn)設(shè)置。
// 全局注冊Treeselect為一個(gè)插件,同時(shí)將默認(rèn)配置覆蓋為新的配置
Vue.use(Treeselect, {
placeholder: '請選擇節(jié)點(diǎn)',
clearable: false
})
當(dāng)Treeselect被全局注冊之后,其在組件中使用方法與在普通的Vue組件中使用方法一致。在組件中使用Treeselect時(shí),除了按照Vue組件的設(shè)置屬性方式之外,還需按照Treeselect的API文檔的要求使用其API。
使用Treeselect的API需要調(diào)用組件的一個(gè)或多個(gè)方法,或是利用Prop來更新節(jié)點(diǎn)數(shù)據(jù)、樹形結(jié)構(gòu)的配置等。以下是一些常用的API示例:
// 通過API操作Treeselect的選中節(jié)點(diǎn)
this.$refs.treeselect.select(['node-id-1', 'node-id-2'])
// 將根據(jù)選中狀態(tài)的所有子節(jié)點(diǎn)返回為一個(gè)扁平的數(shù)組
this.$refs.treeselect.getSelectedNodes()
// 通過異步加載的方式配置節(jié)點(diǎn)數(shù)據(jù)
Treeselect是一個(gè)非常實(shí)用的樹形選擇器組件,全局注冊之后許多需要選擇樹形結(jié)構(gòu)數(shù)據(jù)的Vue組件都可以直接使用該組件,便于代碼的編寫和組件的復(fù)用,并且其支持異步加載、多選等功能也為開發(fā)提供了極大便利。