从 getServerSideProps 或 getStaticProps 获取 NextJs 中菜单项的全局位置

Shu*_*nsh 5 server-side-rendering next.js

Next.js 中是否有任何全局位置来获取我可以传递给我的 Layout 组件的菜单项(服务器端)。

因为,我不能这样做,index.js好像有人直接打开了不同的路由,例如:/about那么数据将不会被获取。

我尝试_app通过实现它的静态getInitialProps方法来做到这一点,但我不确定这是否是一个好的做法,而且它会在没有静态生成的页面中禁用自动静态优化。

有什么建议吗?

Gok*_*ari 6

getInitialProps是你正在做的事情的旧方式。但是getServerSidePropsgetStaticProps将取代getInitialProps

getInitialProps 似乎很快就会被弃用 https://nextjs.org/docs/api-reference/data-fetching/getInitialProps

但是getServerSideProps暂时不能在 _app 中用于全局数据获取。稍后会介绍。在此之前,我认为您有以下选择:

  1. 继续使用getInitialProps和交易静态优化
  2. 在客户端获取菜单项并呈现活动指示器(微调器?),直到数据准备就绪。
  3. 添加getServerSideProps包装器和 HoC,withMenuItem并包装所有页面及其getServerSideProps导出。

  • “添加一个 getServerSideProps 包装器和一个 HoC(如 withMenuItem),并包装所有页面及其 getServerSideProps 导出。”您能详细说明此选项吗?谢谢。 (2认同)