跳转到内容

懒加载插件

提供懒加载子节点能力,在首次展开时动态加载并追加到树。

安装

pnpm add @splicetree/plugin-lazy-load

使用

ts
import { createSpliceTree } from '@splicetree/core'
import lazyLoad from '@splicetree/plugin-lazy-load'

const tree = createSpliceTree(data, {
  plugins: [lazyLoad],
  configuration: {
    lazyLoad: {
      loadChildren: async (node) => {
        const resp = await fetch(`/api/children?parent=${node.id}`)
        const children = await resp.json()
        return children
      },
    },
  },
})

Configuration

选项类型默认值说明
configuration.lazyLoad.loadChildren(node: SpliceTreeNode) => Promise<any[]>异步加载并返回子节点数据

示例

基本懒加载

loading

展开时加载

loading

手动加载

loading

Api

实例方法

名称参数说明
loadedKeys已加载集合
loadingKeys加载中的集合
isLoaded(id)id: string是否已加载
isLoading(id)id: string是否正在加载
load(id)id: string手动加载
expand(ids)ids: string | string[]覆盖:未加载时先加载再展开
toggleExpand(ids)ids: string | string[]覆盖:未加载时先加载再切换

节点方法

名称参数说明
isLoaded()当前节点是否已加载
isLoading()当前节点是否正在加载
hasChildren()重写:未加载返回 true,加载后根据子节点判断