# Features & Configs (配置项)

所有方法的配置项均至少支持以下三个核心配置

# 一、options.strategy:搜索策略

所有本库提供的方法都支持以下三种策略(strategy):

  • pre: 深度优先,正序搜索;
  • post:深度优先,反序搜索;
  • breadth:广度优先

只需要在 options 入参中给出相关配置即可,默认策略为 pre;

{ strategy: 'post' }

# 二、options.childrenKey 支持树结构子节点 key 的命名

支持传入 options.childrenKey 参数,你不仅可以用 children 表示子节点;

也可以用 subItemsbabies 等所有你能想到的词语表示子节点:

{ childrenKey: 'babies' }

# 三、options.getChildrenKey 支持一棵树上多种 childrenKey

下面这种结构的树也是可以被解析的了:

const treeMultiChildrenKey: Tree = {
  key: '1',
  children: [
    {
      key: '2',
      subItems: [
        {
          key: '3'
        }
      ]
    },
    {
      key: '4',
      subItems: [
        {
          key: '5'
        }
      ]
    }
  ]
}

但你需要在 options.getChildrenKey 返回响应的 childrenKey:

{
  getChildrenKey: (tree, meta) => {        
    if (meta.depth === 1) {
      return 'subItems'
    }
  }
}

(返回为 undefined 时,依然会使用 options.childrenKey 作为默认的 key)