提问人:Jatin Chawla 提问时间:11/9/2023 最后编辑:Jatin Chawla 更新时间:11/10/2023 访问量:17
如何将 getInitialProps 替换为 getStaticProps 用于 seo 处理和 props
how to replace getInitialProps with getStaticProps for seo handling and also for props
问:
- 我试图用 getStaticProps() 替换 getInitialPropss(),但我无法做到这一点,我们只能在一个文件中使用 1 个函数
- 此外,通过使用 getStaticProps,SEO 处理和普通道具都应该可以工作
index.tsx (英语)
const homePage: NextPage = () => {
return (
<>
//jsx code
</>
);
};
homePage.getInitialProps = async () => ({
pageProps: {
pageName:
"abc",
pageDescription: dataPageDescription.home,
pageClassName: "home",
mobileHeaderTitle: MobileMenuPageTitleEnum.home
}
});
// export const getStaticProps = async () => {
// const pageProps = {
// pageName:
// "abc",
// pageDescription: dataPageDescription.home,
// pageClassName: "home",
// mobileHeaderTitle: MobileMenuPageTitleEnum.home
// };
// const data = await request(homePage);
// return { props: { data, pageProps } };
// };
export default homePage;
_app.tsx
function Website({ Component, pageProps }: AppProps) {
const currentProps = {
...pageProps
};
//rest code
如何将 getInitialProps() 替换为 getStaticProps()?
任何建议都会有所帮助。
答:
0赞
Dmitrii Tkachenko
11/10/2023
#1
getInitialProps
将适用于您的用例。根据 Next.js 文档
对于初始页面加载,getInitialProps 将仅在服务器上运行。然后,当使用 next/link 组件或使用 next/router 导航到其他路由时,getInitialProps 也将在客户端上运行。
如果爬虫访问您的页面,则会在服务器上运行,返回 SSR 页面。这同样适用于通过直接链接(搜索结果、共享链接等)打开网站的访问者。getInitialProps
但是,如果您使用 Next.js 中的链接,它将通过客户端导航到该页面(没有页面重新加载),并且将使用客户端获取数据(将在浏览器中运行,而不是 Next.js 服务器)
评论