---
title: TreeGraph 实例方法
order: 5
---
### data()
### addChild(data, parent)
在指定的父节点下添加子树。
⚠️ 注意: 将会直接使用 `data` 对象作为新增节点/边的数据模型,G6 内部可能会对其增加或修改一些必要的字段。若不希望原始参数被修改,建议在使用深拷贝后的 `data`。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ------ | ------ | -------- | ---------- |
| data | Object | true | 子树的数据 |
| parent | Node | String | true | 父节点或父节点 ID |
**用法**
```javascript
const data = {
id: 'sub1',
children: [
{
id: 'subTree1',
children: [...]
},
{
id: 'subTree2',
children: [...]
}
]
};
treeGraph.addChild(data, 'root')
```
### updateChild(data, parent)
更新数据,差量更新子树。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ------ | ------ | -------- | ---------- |
| data | Object | true | 子树的数据 |
| parent | Node | String | false | 父节点或父节点 ID |
⚠️ 注意: 当 `parent` 参数为空时,则全量更新。
**用法**
```javascript
const data = {
id: 'sub1',
children: [
{
id: 'subTree1',
children: [...]
},
{
id: 'subTree2',
children: [...]
}
]
};
treeGraph.updateChild(data, 'root')
```
### removeChild(id)
删除指定的子树。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ---- | ------ | -------- | ----------------- |
| id | String | true | 要删除的子树的 ID |
**用法**
```javascript
treeGraph.removeChild('sub');
```
## 布局
### changeLayout(layout)
更改并应用指定的布局。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ------ | ------ | -------- | ---------------------------------- |
| layout | Object | false | 指定的布局配置,如不传,则不做变更 |
**用法**
```javascript
const layout = {
type: 'mindmap',
dirction: 'H',
getSubTreeSep: () => 20,
getVGap: () => 25,
getHeight: () => 30,
getWidth: () => 30,
};
treeGraph.changeLayout(layout);
```
### refreshLayout(fitView)
数据变更后,重新布局,刷新视图,并更新到画布。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ------- | ------- | -------- | ------------------------------ |
| fitView | Boolean | false | 更新布局后,是否需要自适应窗口 |
**用法**
```javascript
treeGraph.refreshLayout(true);
```
## 查找
### findDataById(id, target)
根据指定的 ID 获取对应的源数据。
**参数**
| 名称 | 类型 | 是否必选 | 描述 |
| ------ | ------ | -------- | -------------------------------------------- |
| id | String | true | 指定的元素 ID |
| target | Object | false | 从指定的节点开始查找,为空时从根节点开始查找 |
**返回值**
- 返回值类型:Object;
- 返回值为查找到的节点的源数据。
**用法**
```javascript
const target = {
id: 'sub1',
children: [...]
}
// 从 target 节点开始查找 sub1.1 节点
const subData = treeGraph.findDataById('sub1.1', target)
// 从根节点开始查找 sub1.1 节点
const subData = treeGraph.findDataById('sub1.1')
```