sveltekit-flash-messageSend temporary data after redirect, usually from endpoints. Works with both SSR and client.项目地址:https://gitcode.com/gh_mirrors/sv/sveltekit-flash-message
sveltekit-flash-message
是一个用于 SvelteKit 的库,旨在在重定向后发送临时数据(通常来自端点)。它支持服务器端渲染(SSR)和客户端渲染,并且可以与 SvelteKit 无缝集成。该库通过使用 cookie 来传递消息,确保消息在重定向后仍然可用。
首先,通过 npm 安装 sveltekit-flash-message
:
npm install sveltekit-flash-message
在你的 SvelteKit 项目中,配置 loadFlash
函数以在重定向后传递消息。
在 src/routes/+layout.server.ts
中导入并使用 loadFlash
:
import { loadFlash } from 'sveltekit-flash-message/server';
export const load = loadFlash(async (event) => {
const data = { someOther: 'data' };
return data;
});
在页面或布局组件中导入 getFlash
以显示消息:
{#if $flash}
{$flash.message}
{/if}
假设你有一个表单提交后需要显示成功或错误消息的场景。使用 sveltekit-flash-message
可以轻松实现这一点。
在表单提交后,设置 flash 消息:
import { redirect } from '@sveltejs/kit';
import { setFlash } from 'sveltekit-flash-message/server';
export const actions = {
default: async ({ request }) => {
const data = await request.formData();
// 处理表单数据
setFlash({ type: 'success', message: '表单提交成功!' });
throw redirect(303, '/success');
}
};
在目标页面中显示消息:
{#if $flash}
{$flash.message}
{/if}
@html
:不要使用 @html
来显示 flash 消息,以防止 XSS 攻击。sveltekit-flash-message
可以与 Superforms
结合使用,Superforms
是一个用于 SvelteKit 的表单处理库。两者结合可以提供更强大的表单处理能力。
在表单提交后,使用 Superforms
处理表单数据,并结合 sveltekit-flash-message
显示消息:
import { superForm } from 'sveltekit-superforms/client';
import { setFlash } from 'sveltekit-flash-message/server';
export const actions = {
default: async ({ request }) => {
const form = await superForm(request);
// 处理表单数据
setFlash({ type: 'success', message: '表单提交成功!' });
throw redirect(303, '/success');
}
};
通过这种方式,你可以轻松处理复杂的表单逻辑,并在表单提交后显示相应的消息。
sveltekit-flash-messageSend temporary data after redirect, usually from endpoints. Works with both SSR and client.项目地址:https://gitcode.com/gh_mirrors/sv/sveltekit-flash-message