+++
# -----------------------------------------------------------------------
# Do not edit this file. It is automatically generated by API Documenter.
# -----------------------------------------------------------------------
title = "AppPlugin"
keywords = ["grafana","documentation","sdk","@grafana/data"]
type = "docs"
+++

## AppPlugin class

<b>Signature</b>

```typescript
export declare class AppPlugin<T = KeyValue> extends GrafanaPlugin<AppPluginMeta<T>> 
```
<b>Import</b>

```typescript
import { AppPlugin } from '@grafana/data';
```
<b>Properties</b>

|  Property | Modifiers | Type | Description |
|  --- | --- | --- | --- |
|  [angularPages](#angularpages-property) |  | <code>{</code><br/><code>        [component: string]: any;</code><br/><code>    }</code> |  |
|  [root](#root-property) |  | <code>ComponentClass&lt;AppRootProps&lt;T&gt;&gt;</code> |  |
|  [rootNav](#rootnav-property) |  | <code>NavModel</code> |  |

<b>Methods</b>

|  Method | Modifiers | Description |
|  --- | --- | --- |
|  [init(meta)](#init-method) |  | Called after the module has loaded, and before the app is used. This function may be called multiple times on the same instance. The first time, <code>this.meta</code> will be undefined |
|  [setComponentsFromLegacyExports(pluginExports)](#setcomponentsfromlegacyexports-method) |  |  |
|  [setRootPage(root, rootNav)](#setrootpage-method) |  | Set the component displayed under: /a/$<!-- -->{<!-- -->plugin-id<!-- -->}<!-- -->/\* |

### angularPages property

<b>Signature</b>

```typescript
angularPages?: {
        [component: string]: any;
    };
```

### root property

<b>Signature</b>

```typescript
root?: ComponentClass<AppRootProps<T>>;
```

### rootNav property

<b>Signature</b>

```typescript
rootNav?: NavModel;
```

### init method

Called after the module has loaded, and before the app is used. This function may be called multiple times on the same instance. The first time, `this.meta` will be undefined

<b>Signature</b>

```typescript
init(meta: AppPluginMeta): void;
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  meta | <code>AppPluginMeta</code> |  |

<b>Returns:</b>

`void`

### setComponentsFromLegacyExports method

<b>Signature</b>

```typescript
setComponentsFromLegacyExports(pluginExports: any): void;
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  pluginExports | <code>any</code> |  |

<b>Returns:</b>

`void`

### setRootPage method

Set the component displayed under: /a/$<!-- -->{<!-- -->plugin-id<!-- -->}<!-- -->/\*

<b>Signature</b>

```typescript
setRootPage(root: ComponentClass<AppRootProps<T>>, rootNav?: NavModel): this;
```
<b>Parameters</b>

|  Parameter | Type | Description |
|  --- | --- | --- |
|  root | <code>ComponentClass&lt;AppRootProps&lt;T&gt;&gt;</code> |  |
|  rootNav | <code>NavModel</code> |  |

<b>Returns:</b>

`this`

