1# @ohos.arkui.node
2
3The **Node** module provides level-2 module APIs of custom nodes to export and use.
4
5* [BuilderNode](./js-apis-arkui-builderNode.md#buildernode) module: provides APIs for creating a BuilderNode – a custom node that can be used to mount native components. Avoid mounting a BuilderNode as a child node to other custom nodes.
6
7* [FrameNode](./js-apis-arkui-frameNode.md#framenode) module: provides APIs for a FrameNode, which represents an entity node in the component tree. It can be used by a [NodeController](./js-apis-arkui-nodeController.md#nodecontroller) to mount a [BuilderNode](./js-apis-arkui-builderNode.md#buildernode) (that holds the FrameNode) to a [NodeContainer](arkui-ts/ts-basic-components-nodecontainer.md#nodecontainer) or mount a [RenderNode](./js-apis-arkui-renderNode.md#rendernode) to another FrameNode.
8
9* [NodeController](./js-apis-arkui-nodeController.md#nodecontroller) module: provides APIs for managing custom nodes, such as creating, showing, and updating custom nodes, and APIs for mounting custom nodes to a [NodeContainer](arkui-ts/ts-basic-components-nodecontainer.md#nodecontainer) component.
10
11* [Graphics](./js-apis-arkui-graphics.md#graphics) module: provides APIs for defining attributes of a custom node.
12
13* [RenderNode](./js-apis-arkui-renderNode.md#rendernode) module: provides APIs for creating a RenderNode in custom drawing settings with C APIs.
14
15* [XComponentNode](./js-apis-arkui-xcomponentNode.md#xcomponentnode) module: provides APIs a XComponentNode, an **XComponent** in the component tree. You can write EGL/OpenGL ES and media data and display it on the **XComponent**, whose rendering type can be dynamically modified.
16
17> **NOTE**
18>
19> The initial APIs of this module are supported since API version 11. Newly added APIs will be marked with a superscript to indicate their earliest API version.
20>
21> Custom nodes are not available in DevEco Studio Previewer.
22
23## Obtaining UI Context
24To obtain the UI context, use any of the following methods:
25
261. Call [getUIContext()](./js-apis-window.md#getuicontext10) in **ohos.window** to obtain the **UIContext **instance.
27
282. Call the built-in method [getUIContext()](arkui-ts/ts-custom-component-api.md#getuicontext) of the custom component.
29
303. Use the [makeNode](./js-apis-arkui-nodeController.md#makenode) callback of [NodeController](./js-apis-arkui-nodeController.md#nodecontroller).
31
32## Modules to Import
33
34```ts
35import {
36  BuilderNode,
37  NodeController,
38  FrameNode,
39  RenderNode,
40  XComponentNode,
41  NodeRenderType,
42  RenderOptions,
43  DrawContext,
44  Size,
45  Offset,
46  Position,
47  Pivot,
48  Scale,
49  Translation,
50  Matrix4,
51  Rotation,
52  Frame
53} from '@kit.ArkUI';
54```
55