如何使用Sapper定期获取数据?
这样做对吗?
//src/routes/fetch_on_this_page.svelte
<script>
setInterval(async () => {
//fetch here
}, 3000);
</script>发布于 2020-05-21 15:23:58
要做到这一点,最简单的方法就是在onMount中完成所有的工作。
<script>
import { onMount } from 'svelte';
onMount(() => {
async function fetchData() {...}
const interval = setInterval(fetchData, 3000);
fetchData();
return () => clearInterval(interval));
});
</script>除了创建较少的组件级变量外,onMount代码在服务器端呈现过程中不运行,因此工作量较少。如果需要在多个组件中执行此操作,还可以将其封装到自定义生命周期函数中:
// poll.js
import { onMount } from 'svelte';
export function poll(fn, ms) {
onMount(() => {
const interval = setInterval(fn, ms);
fn();
return () => clearInterval(interval));
});
}<script>
import { poll } from './poll.js';
poll(async function fetchData() {
// implementation goes here
}, 3000);
</script>发布于 2020-05-18 15:58:26
<script>
import { onMount, onDestroy } from "svelte";
async function fetchData() {
//Fetch
}
const interval = setInterval(async () => {
fetchData();
}, 3000);
onMount(async () => {
fetchData();
});
onDestroy(() => clearInterval(interval));
</script>https://stackoverflow.com/questions/61873119
复制相似问题