我的工兵应用程序围绕一个表格组件。此表组件具有我想在 URL 的查询字符串中表示的状态(偏移量、限制、排序、过滤器等)。
该表目前通过直接更新其状态可以正常工作:
<button on:click="{() => offset += limit}" disabled="{offset + rows.length >= count}">»</button>
我看到有页面只读存储可以让我访问查询字符串的当前值。我想我可以使用类似的东西URLSearchParams
来生成更新相关值的链接。
有没有更好的方法来处理这个问题(某种直接将变量绑定到查询字符串的方法)?如果没有,用更新的查询字符串生成链接的最佳方法是什么?
编辑:
我目前的解决方案是以下功能:
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)})}"
它有效,但我觉得应该有更好的方法