标签: svelte

Svelte Store 中的 set() 和 update() 方法有什么区别?

我是 Svelte 商店的新手。在 svelte 教程中,他们使用了update()方法<Incrementer/><Decrementer/>组件来更新值。但在 中<Resetter/>,他们使用了set()重置值的方法。update()svelte store 中的方法和方法到底有什么区别set()

svelte svelte-store

25
推荐指数
1
解决办法
1万
查看次数

如何在 Sveltekit 中动态更改页面标题?

我正在学习 SvelteKit,这可能是一个非常基本的问题。但我不知道如何更改选项卡的标题。

在我的src/+layout.svelte我有:

    <script>
        let title="My Site Homepage"
    
    </script>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        ...
      <title>{title}</title>
  
   </head>
Run Code Online (Sandbox Code Playgroud)

然后在我的/src/faq/+page.svelte我想将标题更改为“常见问题解答”

所以我把

<script>
    let title="FAQ"        
</script>
Run Code Online (Sandbox Code Playgroud)

但是当我访问http://localhost:5173/faq该选项卡的标题时没有改变。所以我想知道我该怎么做?有没有一种 idomatic 方法可以做到这一点?

svelte sveltekit

25
推荐指数
2
解决办法
1万
查看次数

如何设置vite(预览)生产端口?

我一直在寻找如何为 vite 设置生产端口,但我找不到尝试此 vite js 配置的方法

  server: {
    host: true,
  },
  preview:{
    port:5005
  }
Run Code Online (Sandbox Code Playgroud)

但似乎行不通

reactjs vue.js svelte vite

22
推荐指数
2
解决办法
3万
查看次数

如何在 Svelte 中定义条件转换?

在 Svelte 中,我们可以添加过渡:

<div in:fade={{duration: 150}}>...</div>
Run Code Online (Sandbox Code Playgroud)

还可以使用条件 HTML 属性:

<input disabled={null}>
Run Code Online (Sandbox Code Playgroud)

这不适用于转换:

<div in:fade={null}>...</div>
Run Code Online (Sandbox Code Playgroud)

它会抛出此错误,因为它需要一个配置对象:

无法读取 null 属性“延迟”

那么在 Svelte 中添加条件转换的适当方法是什么?

以外:

{#if animate}
    <div in:fade></div>
{:else}
    <div></div>
{/if}
Run Code Online (Sandbox Code Playgroud)

svelte

21
推荐指数
2
解决办法
3868
查看次数

SvelteKit:禁用 SSR

我在 Svelte 中制作了一个应用程序,现在我想将其移植到 SvelteKit。我的应用程序使用windowdocument对象,但这些在 SSR 中不可用。首先,它抛出了ReferenceError: window is not defined,但我通过检查应用程序是否在浏览器中运行来解决这个问题。但正因为如此,我的应用程序无法运行。

server-side-rendering svelte sveltekit

21
推荐指数
2
解决办法
2万
查看次数

如何重定向到 SvelteKit 中的页面?

我有一个页面,其中包含从 SvelteKit 商店呈现的内容。如果商店无效,则需要将用户重定向到主页。不幸的是,即使不检查任何条件,我也找不到重定向用户的方法,所以让我们关注一个更简单的问题:如何始终从某个页面重定向到主页?

我尝试过以下方法,但这些方法都不适合我:

  • 在页面中使用<script context="module">before script标签如下:
<script context="module">
    export async function load() {
        return {
            status: 302,
            redirect: "/"
        };
    }
</script>
Run Code Online (Sandbox Code Playgroud)
  • 在 +page.js 文件中使用 PageLoad:
/** @type {import('./$types').PageLoad} */
export function load() {
    return {
        status: 302,
        redirect: '/'
    };
}
Run Code Online (Sandbox Code Playgroud)

当我使用上面提到的代码时,网站的工作方式就像没有任何更改一样,我没有收到任何错误,但重定向不会发生。如果我意外地到达该页面(在搜索栏中输入其地址,商店尚未准备好),我会被重定向到错误页面,因为发生了错误(我想通过主页重定向来防止)。如果我按预期到达该页面(商店很好),则页面会正常呈现,不会发生重定向。

redirect svelte sveltekit

21
推荐指数
2
解决办法
4万
查看次数

使用 Svelte 创建多页/html

似乎我发现的每个教程或示例都是专为 SPA(单页应用程序)设计的,应该怎么做才能生成多个页面/html?(无需为每个页面创建一个项目)

我需要多页的原因:

  1. 后端是使用另一种语言构建的(我没有使用 Sapper),所以我需要的只是静态 html 和 javascript。
  2. 我的一些朋友在开发过程中重新加载非常缓慢(他们有太多的组件)

编辑:最后做了一个模板来生成基于多SPA vite-plugin-mpa苗条-MPA可以degit /复制和修改,以满足您的需求

svelte

20
推荐指数
0
解决办法
3583
查看次数

Svelte 3 - 如何循环每个块 X 次

我希望找到一种方法来在 Svelte 3 中迭代 #each 块一定次数。在 Vue 中,我会做这样的事情:

<li v-for="i in 3"><!-- somecontent --></li>
Run Code Online (Sandbox Code Playgroud)

但据我所知,Svelte 使用 #eached 数组的 .length 属性处理循环的方式大不相同。有没有办法在 Svelte 中完成这样的事情?

{#each 3 as i}
  <li><!-- somecontent --></li>
{/if}
Run Code Online (Sandbox Code Playgroud)

javascript arrays svelte svelte-3

20
推荐指数
2
解决办法
8759
查看次数

svelte 包应该是依赖项还是 devDependency?

我知道已经有很多关于dependency和之间的区别的帖子devDependency,但我没有找到任何解释 svelte 情况的帖子,所以让我们在这里打开这个。

在大多数 svelte 软件包(如svelte-material-uisvelte-routing )中,安装指南告诉您将软件包安装为dependency. 但是,由于 svelte 将在构建期间编译此包,因此使用它的新库不需要安装此 svelte 包。所以我不明白为什么它必须是一个dependency.

也许这个问题是基于意见的,但至少对使用什么有一个小小的想法会很好。

javascript dependency-management npm svelte

20
推荐指数
2
解决办法
4307
查看次数

具有 on:click 事件的可见非交互式元素必须伴随 on:keydown、on:keyup 或 on:keypress 事件

A11y:具有 on:click 事件的可见非交互式元素必须伴随 on:keydown、on:keyup 或 on:keypress event.svelte (a11y-click-events-have-key-events)

这个错误是什么意思 ?我在 sveltekit 中得到的太多了。当我想添加事件侦听器时,请单击此警告显示给我。即使事件处理程序也不为空。在我的代码下面。

<div
    class="select-options max-h-0 transition-all duration-300 bg-slate-100"
    data-target="option-selection-wrapper"
    >
    {#each options as item}
        <div class="border py-1 border-dark-300 px-3 text-sm" on:click={()=> {
            selectedItem = item
        }}>
            {@html item.name}
        </div>
    {/each}
</div>
Run Code Online (Sandbox Code Playgroud)

有没有可能的方法来删除这个警告。以及为什么会显示此警告。

accessibility dom-events svelte sveltekit

20
推荐指数
2
解决办法
2万
查看次数