> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yampi.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Parâmetros de URL

> Sincroniza os parâmetros de filtro e paginação da listagem com a URL do navegador.

Módulo Vuex que mantém os query params da listagem em sincronia com a URL. Ao modificar qualquer parâmetro via `setQueryParams`, a URL é atualizada automaticamente via `history.pushState`.

## Getters

| Getter        |   Tipo   | Descrição                              |
| :------------ | :------: | :------------------------------------- |
| `queryParams` | `Object` | Query params ativos na listagem atual. |

## Actions

| Action              | Parâmetros                 | Descrição                                                                               |
| :------------------ | :------------------------- | :-------------------------------------------------------------------------------------- |
| `load`              | —                          | Carrega os query params da URL atual e os sincroniza com o estado da store.             |
| `setQueryParams`    | `payload: Object`          | Define ou atualiza query params. Parâmetros em array fazem toggle (XOR) no valor atual. |
| `removeQueryParams` | `payload: { key: String }` | Remove um query param pelo nome da chave.                                               |
| `updateUrl`         | —                          | Atualiza a URL do navegador com os query params atuais. Chamado automaticamente.        |

## Parâmetros ocultos da URL

Os parâmetros `slug`, `context`, `resultsOnly`, `limit` e `include` são usados internamente e não aparecem na URL.

## Uso

```js theme={"system"}
import { mapGetters, mapActions } from 'vuex';

export default {
    computed: {
        ...mapGetters('queryParams', ['queryParams']),

        currentPage() {
            return this.queryParams.page || 1;
        },
    },
    methods: {
        ...mapActions('queryParams', ['setQueryParams', 'removeQueryParams']),

        goToPage(page) {
            this.setQueryParams({ page });
        },

        clearSearch() {
            this.removeQueryParams({ key: 'search' });
        },
    },
};
```
