**Source URL:** https://limited.veevavault.dev/quality/custom-pages/vault-web-sdk/24.3.4/interfaces/vaultmodule.md

# VaultModule

## Properties {#properties}

### vaultApiClient {#vaultapiclient}

> 
**vaultApiClient**: [`VaultApiClient`](/custom-pages/vault-web-sdk/24.3.4/interfaces/vaultapiclient)

## Methods {#methods}

### defineFake() {#definefake}

> 
**defineFake**<`Data`>(`initialize`): `unknown`

**`Internal`**

This is only to ensure websdk works with more than one type of plugin.
Please remove once we have a type other than "page"

#### Type Parameters {#type-parameters}

##### Data {#data}

`Data`

#### Parameters {#parameters}

##### initialize {#initialize}

(`params`) => `unknown`

#### Returns {#returns}

`unknown`

---

### definePage() {#definepage}

> 
**definePage**<`Data`>(`initialize`): `unknown`

definePage is the mechanism for registering Pageclientcode implementation. Vault Java SDK
PageControllers can pass data.

#### Type Parameters {#type-parameters-1}

##### Data {#data-1}

`Data`

#### Parameters {#parameters-1}

##### initialize {#initialize-1}

(`params`) => `unknown`

The callback function that is executed from a PageController's onLoad
Response when first initialized.

#### Returns {#returns-1}

`unknown`

A JsonObject which is returned from the response from the Vault Java SDK onEvent method

#### Examples {#examples}

```

export default Vault.definePage(({element, data, pageContext, sendEvent})=>{
    element.textContent="Hello World";
});

```

```

import { createRoot } from 'react-dom/client';
import HelloWorld from './helloWorld';

export default Vault.definePage(({element, data, pageContext, sendEvent})=>{
    const root = createRoot(element);
    root.render(<HelloWorld />);
})


```


---

**Previous:** [VaultApiClient](/quality/custom-pages/vault-web-sdk/24.3.4/interfaces/vaultapiclient)  
**Next:** [Type Aliases](/quality/custom-pages/vault-web-sdk/24.3.4/type-aliases)