我是 Svelte 商店的新手。在 svelte 教程中,他们使用了update()方法<Incrementer/>和<Decrementer/>组件来更新值。但在 中<Resetter/>,他们使用了set()重置值的方法。update()svelte store 中的方法和方法到底有什么区别set()?
我正在学习 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 方法可以做到这一点?
我一直在寻找如何为 vite 设置生产端口,但我找不到尝试此 vite js 配置的方法
server: {
host: true,
},
preview:{
port:5005
}
Run Code Online (Sandbox Code Playgroud)
但似乎行不通
在 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 中制作了一个应用程序,现在我想将其移植到 SvelteKit。我的应用程序使用window和document对象,但这些在 SSR 中不可用。首先,它抛出了ReferenceError: window is not defined,但我通过检查应用程序是否在浏览器中运行来解决这个问题。但正因为如此,我的应用程序无法运行。
我有一个页面,其中包含从 SvelteKit 商店呈现的内容。如果商店无效,则需要将用户重定向到主页。不幸的是,即使不检查任何条件,我也找不到重定向用户的方法,所以让我们关注一个更简单的问题:如何始终从某个页面重定向到主页?
我尝试过以下方法,但这些方法都不适合我:
<script context="module">before script标签如下:<script context="module">
export async function load() {
return {
status: 302,
redirect: "/"
};
}
</script>
Run Code Online (Sandbox Code Playgroud)
/** @type {import('./$types').PageLoad} */
export function load() {
return {
status: 302,
redirect: '/'
};
}
Run Code Online (Sandbox Code Playgroud)
当我使用上面提到的代码时,网站的工作方式就像没有任何更改一样,我没有收到任何错误,但重定向不会发生。如果我意外地到达该页面(在搜索栏中输入其地址,商店尚未准备好),我会被重定向到错误页面,因为发生了错误(我想通过主页重定向来防止)。如果我按预期到达该页面(商店很好),则页面会正常呈现,不会发生重定向。
似乎我发现的每个教程或示例都是专为 SPA(单页应用程序)设计的,应该怎么做才能生成多个页面/html?(无需为每个页面创建一个项目)
我需要多页的原因:
编辑:最后做了一个模板来生成基于多SPA vite-plugin-mpa,苗条-MPA可以degit /复制和修改,以满足您的需求
我希望找到一种方法来在 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) 我知道已经有很多关于dependency和之间的区别的帖子devDependency,但我没有找到任何解释 svelte 情况的帖子,所以让我们在这里打开这个。
在大多数 svelte 软件包(如svelte-material-ui或svelte-routing )中,安装指南告诉您将软件包安装为dependency. 但是,由于 svelte 将在构建期间编译此包,因此使用它的新库不需要安装此 svelte 包。所以我不明白为什么它必须是一个dependency.
也许这个问题是基于意见的,但至少对使用什么有一个小小的想法会很好。
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)
有没有可能的方法来删除这个警告。以及为什么会显示此警告。
svelte ×10
sveltekit ×4
javascript ×2
arrays ×1
dom-events ×1
npm ×1
reactjs ×1
redirect ×1
svelte-3 ×1
svelte-store ×1
vite ×1
vue.js ×1