我正在学习 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 方法可以做到这一点?
我想将用于生产和开发的 BASE_URL 定义为要在 API 调用中使用的环境变量,如下所示:
DEV_BASE_URL="http://127.0.0.1:8080"
PROD_BASE_URL="https://example.com"
Run Code Online (Sandbox Code Playgroud)
我已在.env
文件中定义它们,然后在我的组件中尝试导入它们,如下所示:
import {env} from '$env/dynamic/public'
console.log('DEV_BASE_URL is:', env.DEV_BASE_URL)
Run Code Online (Sandbox Code Playgroud)
但我进入DEV_BASE_URL is: undefined
了控制台。
关于不同类型环境的文档让我更加困惑。文档太糟糕了。
因此,感谢您帮助以惯用的方式解决这些全局变量。
在我的第一个Next.js
项目中,我有一个在服务器端呈现的文章组件。我想从客户端获取文章标签,否则我会得到太多 DOM 元素。所以这就是我想出的:
const ArticlesPage = () => {
const [tags, setTags] = useState([])
const { isLoading, isError, data, error } = useQuery('tags', getTags, {
onSuccess: () => setTags(data)
}
//...
})
console.log('tags are:', tags)
return (
<>
...
{!isLoading && !isError &&
<TagsComponent tags={tags} />
}
{isLoading &&
<div> Loading tags...</div>
}
{isError &&
<div> Error fetching tags</div>
}
</>
Run Code Online (Sandbox Code Playgroud)
问题是标签异想天开地呈现在文章页面上,也就是说,当我刷新页面时,它们不会显示,但当我重新关注页面时,标签会显示。我也没有看到任何Loading
或Error
正在渲染。所以我很困惑这里发生了什么?
我怎样才能解决这个问题?