我有一个疑问。我可以在getStaticProps中使用useEffect吗?
我试图在getStaticProps中运行一个函数…它的工作原理。但我不知道这是不是一件值得做的事。
useEffect(() => {
remarkBody()
}, [body, blogPostCollection])
如果不是…最好的运行方式是什么?
useEffect
用于在客户端挂载组件或特定变量发生变化时执行代码。
getStaticProps
仅在服务器端和构建时运行一次。您可以将代码直接放在函数体中。
无论如何,如果你这样做了,你会得到这个错误:
错误:无效钩子调用。钩子只能在函数组件的内部调用。
next.js中的数据是从服务器上获取的。这是服务器端呈现的关键方面。服务器端呈现的主要目的是发送填充的页面,这样浏览器爬虫就可以分析响应页面,这有助于更好地优化您的页面。当客户端发出请求时,在发送响应之前,next.js会运行getStaticProps或getServerSideProps。
然而useEffect
运行在客户端。useEffect
的目的是在组件挂载之前获取数据,以便您可以在组件内部使用该数据。