---
title: Funções
slug: studio/funcoes
docTags: 
createdAt: 2026-04-28T18:37:56.897Z
---

# <font color="#DA8D35">1 - Funções</font>

Funções são blocos de código que podem ser reutilizados em diferentes partes do seu projeto.

***

## <font color="#DA8D35">1.1 - Estrutura geral da função</font>

```javascript
const params = {
  username: String,
  password: String,
}
const handler = (ctx, args) => {
  const { event, router, element } = ctx
  const { username, password } = args
}
module.exports = {
  params,
  handler
}
```

***

## <font color="#DA8D35">1.2 - Parâmetros (opcionais)</font>

```javascript
const params = {
  username: String,
  password: String,
}
```

Esse objeto é opcional e define os parâmetros que a função receberá. - Opções de tipo: - Corda - Número - Booleano - Objeto - Array - Data

***

## <font color="#DA8D35">1.3 - Manipulador</font>

```javascript
const handler = (ctx, args) => {
  const { event, router, element } = ctx
  const { username, password } = args
}
```

O handler é a função que será executada quando a função for chamada. Ele recebe dois parâmetros:

`ctx`: Contexto da função, contém informações sobre o evento, funções de navegação e elemento atual

```javascript
const { event, router, element } = ctx
const {
  navigate,
  ...rest,
} = router
```

Podem ser diferentes dependendo do evento que acionou a função. `Event`

`args`: Argumentos de função, contém os valores dos parâmetros da função. E se estiver dentro de um componente, contém um objeto item com o item do elemento que chamou essa função. `List`

***

## <font color="#DA8D35">1.4 - Exportação</font>

A função precisa ser exportada para poder ser usada em outros lugares.

```javascript
module.exports = {
  params,
  handler
}
```

***

## <font color="#DA8D35">1.5 - Funções de importação</font>

<font color="#DA8D35">**Melhores práticas**\: </font>Importar módulos fora do handler, porque se importados dentro do handler, eles serão carregados toda vez que a função for executada, impactando o desempenho da aplicação.

Esta é uma função que carrega um módulo e é necessário usar a sintaxe para importar o módulo. `require~<module-name>`

- Módulos padrão:&#x20;
- `~libs/router `
- `~libs/elements `

```javascript
const params = {
  username: String,
  password: String,
}

const auth = require("~libs/router")
const elements = require("~libs/elements")

const handler = (ctx, args) => {}

module.exports = {
  params,
  handler
}
```

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/-4_SDcjt_aznvASbRyZ46-20260601-191750.gif)

