如何将 getInitialProps 替换为 getStaticProps 用于 seo 处理和 props

how to replace getInitialProps with getStaticProps for seo handling and also for props

提问人:Jatin Chawla 提问时间:11/9/2023 最后编辑:Jatin Chawla 更新时间:11/10/2023 访问量:17

问:

  • 我试图用 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()?

任何建议都会有所帮助。

ReactJS 下一个 .js SEO

评论


答:

0赞 Dmitrii Tkachenko 11/10/2023 #1

getInitialProps将适用于您的用例。根据 Next.js 文档

对于初始页面加载,getInitialProps 将仅在服务器上运行。然后,当使用 next/link 组件或使用 next/router 导航到其他路由时,getInitialProps 也将在客户端上运行。

如果爬虫访问您的页面,则会在服务器上运行,返回 SSR 页面。这同样适用于通过直接链接(搜索结果、共享链接等)打开网站的访问者。getInitialProps

但是,如果您使用 Next.js 中的链接,它将通过客户端导航到该页面(没有页面重新加载),并且将使用客户端获取数据(将在浏览器中运行,而不是 Next.js 服务器)