**Source URL:** https://limited.veevavault.dev/qualityone/custom-pages/vault-web-sdk/25.3.0/functions/definepage.md

# definePage

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

Defines the Custom Page client code and registers an implementation of the `Pageclientcode` MDL component. A Vault Java SDK
`PageController` can pass data using the load callback parameter.

## Type Parameters {#type-parameters}

### Data {#data}

`Data`

## Parameters {#parameters}

### initialize {#initialize}

(`params`) => `unknown`

The load callback function with parameter type [PageParameters](/custom-pages/vault-web-sdk/25.3.0/interfaces/pageparameters). Provides data to the client code from
Vault Java SDK's `PageController`. Executed from the `PageController#onLoad` response when
the Custom Page is initialized.

## Returns {#returns}

`unknown`

## Examples {#examples}

```
import { definePage } from '@veeva/vault';

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

```

```
import { createRoot } from 'react-dom/client';
import { definePage } from '@veeva/vault';

const HelloWorld = () => {
     return <h1>Hello World</h1>;
};

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

```


---

**Previous:** [Functions](/qualityone/custom-pages/vault-web-sdk/25.3.0/functions)  
**Next:** [Interfaces](/qualityone/custom-pages/vault-web-sdk/25.3.0/interfaces)