You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Svelte中新建页面与路由跳转:按钮触发页面跳转方法咨询

Svelte中通过按钮实现页面跳转的方法

根据你的需求,分两种场景给出具体实现方式:

1. 纯Svelte项目(无路由框架)

这种情况和原生HTML逻辑类似,但用Svelte的事件绑定语法:

直接内联跳转逻辑

<button on:click={() => window.location.href = '/NEWPAGE'}>NEWPAGE</button>

封装成函数(更易维护)

<script>
  function openNewPage() {
    window.location.href = '/NEWPAGE';
    // 也可以用 window.location.replace('/NEWPAGE') 替换当前页面历史记录
  }
</script>

<button on:click={openNewPage}>NEWPAGE</button>

2. SvelteKit项目(带官方路由)

如果用的是SvelteKit(Svelte官方的全栈框架),推荐使用内置的goto方法,它支持客户端导航(无刷新跳转),体验更流畅:

基础跳转

<script>
  import { goto } from '$app/navigation';
</script>

<button on:click={() => goto('/NEWPAGE')}>NEWPAGE</button>

模拟表单POST跳转

如果需要像HTML表单action那样提交POST请求后跳转,可以用两种方式:

方式一:直接使用表单

<form action="/route" method="POST">
  <!-- 可添加表单字段 -->
  <button type="submit">提交并跳转</button>
</form>

方式二:手动处理请求+跳转

<script>
  import { goto } from '$app/navigation';

  async function submitAndNavigate() {
    // 先发送POST请求
    const response = await fetch('/route', {
      method: 'POST',
      body: JSON.stringify({ /* 你的请求数据 */ }),
      headers: { 'Content-Type': 'application/json' }
    });

    if (response.ok) {
      // 请求成功后跳转
      goto('/NEWPAGE');
    }
  }
</script>

<button on:click={submitAndNavigate}>提交并跳转</button>

注意:Modal是弹窗组件,不属于页面跳转范畴,如果你需要URL变化、页面内容完全替换的跳转,用上面的方法就可以实现。

内容的提问来源于stack exchange,提问作者Dude Rar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 22:36:12