动态内容静态化

在服务端将动态的内容渲染成静态页面之后,发送给客户端,这样就没有白屏时间,速度非常快。

getStaticProps 获取 posts

  1. import {NextPage} from 'next';
  2. import {getPosts} from '../../lib/posts';
  3. type Props = {
  4. posts:Post[]
  5. }
  6. const PostsIndex: NextPage<Props> = (props) => {
  7. const {posts} = props
  8. return (
  9. <div>
  10. <h1>文章列表</h1>
  11. {posts.map(p =><div key={p.id}>
  12. {p.id}
  13. </div>)}
  14. </div>
  15. );
  16. };
  17. export default PostsIndex;
  18. export const getStaticProps = async () =>{
  19. const posts = await getPosts()
  20. return {
  21. props:{
  22. posts:JSON.parse(JSON.stringify(posts))
  23. }
  24. }
  25. };

要记住的是,getStaticProps是在build的时候执行的