@ByJumping

Как улучшить запись параметров запроса URL в vue 3/javascript?

Всем привет. Долго ломаю голову как лучше записыввать query параметры. Суть такая: на сайте много фильтров, каждый фильтр отсылает на бэк GET запрос. Query параметры я должен сохранять, что бы мог кому то отправить ссылку уже с фильтрами.

Параметры сохраняю в глоабльное хранилище, вот такой функцией

filterEndpoint: {},
setFilterEndpoint({ type, data }) {
      this.filterEndpoint[type] = data;
      if (data === null || typeof data === 'undefined') delete this.filterEndpoint[type];
      // if (type === 'all') this.filterEndpoint = {};
      if (type === 'filters[has_profiles]') {
        delete this.filterEndpoint['filters[status]'];
      }
      if (type === 'filters[status]') {
        delete this.filterEndpoint['filters[has_profiles]'];
      }

      this.endpoint = '';
      for (const key in this.filterEndpoint) {
        if (!Array.isArray(this.filterEndpoint[key])) {
          this.endpoint += `&${key}=${this.filterEndpoint[key]}`;
        } else {
          this.filterEndpoint[key].forEach((item, index) => {
            this.endpoint += `&${key}[${index}]=${item}`;
          });
        }
      }
    },


Какие могут быть значени type и data:
filters[status]
page
filters[department_id:in][0]
filters[department_id:in][1]
filters[risk_ids_1][0]
filters[risk_ids_3][0]
filters[has_profiles]

И прикол какой, у меня допустим 50 департаментов и на бэк я должен передавать вот так - filters[department_id:in][0]&filters[department_id:in][2]&filters[department_id:in][0]&filters[department_id:in][4],

то есть не просто в массив записать айдишники. Ну и по итогу строка у меня может выглядеть так -
http://localhost:3000/?page=1&filters[department_i...

Выше я написал функцию, которая записывает параметры и все работает отлично, вопрос в том, как можно улучшить? Что бы было более понятнее. Может быть есть какие то библиотеки для этого, ни чего не нашел. Но сама функция выглядит страшно)) Плюс она не универсальная, если будут какие нибудь другие параметры, уже не сработает

Какие вообще есть способы универсально записывать query параметры? Ни чего годного не смог найти
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 1
wapster92
@wapster92 Куратор тега JavaScript
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы