# 自定义组件内置方法 自定义组件内置方法是由ArkUI开发框架提供给应用开发者的,定义在自定义组件基类上的API。应用开发者可以在自定义组件的实例上调用对应的API以获取当前自定义组件实例相关的信息。例如,查询当前自定义组件上下文的UIContext信息。 > **说明:** > > 本模块首批接口从API version 11开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。 > ## getUIContext getUIContext(): UIContext 获取UIContext对象。 **原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** | 类型 | 说明 | | --------------------------------------------------------- | ----------------------- | | [UIContext](../js-apis-arkui-UIContext.md#uicontext) | 返回UIContext实例对象。 | **示例:** ```ts import { UIContext } from '@kit.ArkUI'; @Entry @Component struct MyComponent { aboutToAppear() { let uiContext: UIContext = this.getUIContext(); } build() { // ... } } ``` ## getUniqueId12+ getUniqueId(): number 获取当前Component的UniqueId。UniqueId为系统为每个组件分配的Id,可保证当前应用中的唯一性。若在组件对应的节点未创建或已销毁时获取,返回无效UniqueId:-1。 **原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** | 类型 | 说明 | | --------------------------------------------------------- | ----------------------- | | number | 返回当前Component的UniqueId。 | **示例:** ```ts @Entry @Component struct MyComponent { aboutToAppear() { let uniqueId: number = this.getUniqueId(); } build() { // ... } } ``` ## queryNavDestinationInfo queryNavDestinationInfo(): NavDestinationInfo | undefined; 查询自定义组件所属的NavDestination信息。 **原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** | 类型 | 说明 | | -------------------------------------------------------------------------- | --------- | | [NavDestinationInfo](../js-apis-arkui-observer.md#navdestinationinfo) \| undefined | 返回NavDestinationInfo实例对象。 | **示例:** ```ts import { uiObserver } from '@kit.ArkUI' @Component export struct NavDestinationExample { build() { NavDestination() { MyComponent() } } } @Component struct MyComponent { navDesInfo: uiObserver.NavDestinationInfo | undefined aboutToAppear() { // this指代MyComponent自定义节点,并从该节点向上查找其最近的一个类型为NavDestination的父亲节点 this.navDesInfo = this.queryNavDestinationInfo(); console.log('get navDestinationInfo: ' + JSON.stringify(this.navDesInfo)) } build() { // ... } } ``` ## queryNavigationInfo12+ queryNavigationInfo(): NavigationInfo | undefined 查询自定义组件所属的Navigation信息。 **原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** | 类型 | 说明 | | -------------------------------------------------------------------------- | --------- | | [NavigationInfo](../js-apis-arkui-observer.md#navigationinfo12) \| undefined | 返回NavigationInfo实例对象。 | **示例:** ```ts // index.ets import { uiObserver } from '@kit.ArkUI' @Entry @Component struct MainPage { pathStack: NavPathStack = new NavPathStack() build() { Navigation(this.pathStack) { // ... }.id("NavigationId") } } @Component export struct PageOne { pathStack: NavPathStack = new NavPathStack() aboutToAppear() { // this指代PageOne自定义节点,并从该节点向上查找其最近的一个类型为Navigation的父亲节点 let navigationInfo: uiObserver.NavigationInfo | undefined = this.queryNavigationInfo() console.log('get navigationInfo: ' + JSON.stringify(navigationInfo)) if (navigationInfo !== undefined) { this.pathStack = navigationInfo.pathStack } } build() { NavDestination() { // ... }.title('PageOne') } } ``` ## queryRouterPageInfo12+ queryRouterPageInfo(): RouterPageInfo | undefined; 获取RouterPageInfo实例对象。 **原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **返回值:** | 类型 | 说明 | | ------------------------------------------------------------ | ---------------------------- | | [RouterPageInfo](../js-apis-arkui-observer.md#routerpageinfo) \| undefined | 返回RouterPageInfo实例对象。 | **示例:** ```ts import { uiObserver } from '@kit.ArkUI' @Entry @Component struct MyComponent { aboutToAppear() { let info: uiObserver.RouterPageInfo | undefined = this.queryRouterPageInfo(); } build() { // ... } } ```