nextjs 开启CSG渲染模式
1. 官网给到的一部分加载模式:
import dynamic from 'next/dynamic' import { Suspense } from 'react' const DynamicHeader = dynamic(() => import('../components/header'), { suspense: true, }) export default function Home() { return ( <Suspense fallback={`Loading...`}> <DynamicHeader /> </Suspense> ) }
2. 单个页面启用CSG(客户端渲染)
import dynamic from 'next/dynamic' import React from 'react' const NoSsr = props => ( <React.Fragment>{props.children}</React.Fragment> ) export default dynamic(() => Promise.resolve(NoSsr), { ssr: false })
3. 同理,整个应用启用CSG:在_app.tsx写入dynamic加载方式
import type { AppProps } from "next/app"; import dynamic from "next/dynamic"; import React from "react"; const App = ({ Component, pageProps }: AppProps) => { return <Component {...pageProps} />; }; export default dynamic(() => Promise.resolve(App), { ssr: false, });