(六)SvelteKit教程:刷新数据,preload data,环境变量和部署
1.刷新数据
文件目录如下:
├── stocks
│ ├── +page.js
│ └── +page.svelte
+page.js 内容如下:
export const load = async (loadEvent) => {
const { fetch } = loadEvent;
// depends('stocks:actively-trading');
const response = await fetch('http://localhost:4000/stocks');
const stocks = await response.json();
return { stocks };
};
+page.svelte 内容如下:
<script>
import { invalidateAll, invalidate } from '$app/navigation';
export let data;
function refresh() {
// invalidateAll();
// invalidate('stocks:actively-trading');
invalidate('http://localhost:4000/stocks');
}
</script>
<h1>Actively trading stocks</h1>
{#each data.stocks as stock}
<h2>{stock.symbol} - ${stock.price}</h2>
{/each}
<button on:click={refresh}>Refresh</button>
重点是里面的 refresh 函数。
2.preload data
如下 routes/+page.svelte 内容:
<script>
import { goto, preloadData } from "$app/navigation";
const handleClick = () => {
console.log("handleClick about page");
goto("/about");
};
</script>
<div>
This is a Home page.
<a href="/users" data-sveltekit-preload-data="hover"> users page</a>
<a href="/stocks"> stocks page</a>
</div>
<button
on:focus={async () => {
await preloadData("/about");
}}
on:mouseover={async () => {
await preloadData("/about");
}}
on:click={handleClick}>Go to About page</button>
其中 <a href="/users" data-sveltekit-preload-data="hover"> users page</a>
这行代码是通过参数来进行 preload data,如果你想要通过写代码,那么可以参考如下:
on:focus={async () => {
await preloadData("/about");
}}
on:mouseover={async () => {
await preloadData("/about");
}}
3.环境变量
在根目录下设置 .env 文件,里面写入:
DB_USER=root
DB_PASSWORD=root
DB_HOST=localhost
之后,我们可以通过在 +page.server.js 中通过:
import { DB_USER } from '$env/static/private';
来进行使用。
4.部署
通过 https://vercel.com/ 非常容易