Phi*_*p C 7 javascript svelte svelte-store sapper
我的工兵应用程序围绕一个表组件。这个表组件具有我想在 URL 的查询字符串中表示的状态(偏移量、限制、排序、过滤器等)。
该表目前通过直接更新其状态可以正常工作:
<button on:click="{() => offset += limit}" disabled="{offset + rows.length >= count}">»</button>
Run Code Online (Sandbox Code Playgroud)
我看到有页面只读存储可以让我访问查询字符串的当前值。我想我可以使用类似的东西URLSearchParams来生成更新相关值的链接。
有没有更好的方法来处理这个问题(某种直接将变量绑定到查询字符串的方法)?如果没有,用更新的查询字符串生成链接的最佳方法是什么?
编辑:
我目前的解决方案是以下功能:
<button on:click="{() => offset += limit}" disabled="{offset + rows.length >= count}">»</button>
Run Code Online (Sandbox Code Playgroud)
我在一个a标签中引用了它,将上面的按钮替换为:
href="{getLink({'offset': (offset - limit)})}"
Run Code Online (Sandbox Code Playgroud)
它有效,但我觉得应该有更好的方法
Ric*_*ris 19
您可以从page商店访问查询字符串状态:
<script>
import { stores } from '@sapper/app';
const { page } = stores();
$: start = $page.query.p * $page.query.itemsPerPage;
$: end = start + $page.query.itemsPerPage;
$: slice = myData.slice(start, end); // plus filtering, sorting etc
</script>
<table>
<thead>...</thead>
<tbody>
{#each slice as row}
<tr>...</tr>
{/each}
</tbody>
</table>
<a href="my-table?p={$page.query.p + 1}">next</a>
Run Code Online (Sandbox Code Playgroud)
如果您需要以编程方式导航,您可以使用goto:
<script>
import { stores, goto } from '@sapper/app';
// ...
const next = () => {
goto(`my-table?p=${$page.query.p + 1}`);
};
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3939 次 |
| 最近记录: |