**Source URL:** https://limited.veevavault.dev/safety/custom-pages/vault-web-sdk/26.1.0/functions/definepage

# 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

### Data

`Data`

## Parameters

### initialize

(`params`) => `unknown`

The load callback function with parameter type [PageParameters](/safety/custom-pages/vault-web-sdk/26.1.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

`unknown`

## Examples

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

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

```js
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](/safety/custom-pages/vault-web-sdk/26.1.0/functions)  
**Next:** [Interfaces](/safety/custom-pages/vault-web-sdk/26.1.0/interfaces)