Мое саперное приложение вращается вокруг компонента таблицы. Этот компонент таблицы имеет состояние (смещение, лимит, сортировка, фильтры и т. Д.), Которое я хотел бы представить в строке запроса URL-адреса.
В настоящее время таблица работает нормально, напрямую обновляя ее состояние:
<button on:click="{() => offset += limit}" disabled="{offset + rows.length >= count}">»</button>
Я вижу, что есть хранилище страниц, доступное только для чтения, которое может дать мне доступ к текущему значению строки запроса. Я полагаю, что могу использовать что-то вроде URLSearchParams
для генерации ссылок с соответствующим обновленным значением.
Есть ли лучший способ справиться с этим (какой-то способ прямой привязки переменных к строке запроса)? Если нет, то как лучше всего создать ссылки с обновленными строками запроса?
EDIT:
Мое текущее решение - следующая функция:
const getLink = queryStringDiff => {
const query = $page.query;
const path = $page.path;
const str = Object.entries({...query, ...queryStringDiff}).reduce(
(acc, cur) => `${acc}&${cur[0]}=${cur[1]}`, ''
).replace('&', '?');
return `${path}${str}`;
}
Который я указываю в теге a
, заменяя вышеуказанную кнопку на:
href="{getLink({'offset': (offset - limit)})}"
Это работает, но я чувствую, что должен быть лучший способ