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

bln*_*nks 25 svelte 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 方法可以做到这一点?

bln*_*nks 39

好吧,谢谢 svelte docs,我找到了答案。

<head>svelte:head 元素允许您在文档中插入元素 :

所以我只需要将其添加到常见问题解答页面:

<svelte:head>
    <title>FAQ</title> 
</svelte:head>
Run Code Online (Sandbox Code Playgroud)


joy*_*joy 6

据我了解,您想立即更改标题。

为了实现这一点,我不建议使用双向绑定,因为您输入绑定的“变量”实际上不是变量,而是用于绑定的空格框。只要传递标题就可以了。

因为人们需要直接答案而不是解释问题。

//../components/meta-title.svelte

<svelte:head>
   <title>{title}</title>
</svelte:head>

<script>
   export let title = "default title for page"
</script>


//../pages/_layout.svelte

<Meta title="This is a dynamic title" />
Run Code Online (Sandbox Code Playgroud)

如果不起作用请告诉我。

谢谢