簡體   English   中英

Next.js 更改 url 而不使用 ISR 構建頁面

[英]Next.js change url without building the page using ISR

我正在使用 ISR 使用 next.js 構建 static 產品頁面。 由於要生成很多頁面,我只為它生成了幾個頁面。 我要解決的問題是在查看產品類別頁面時,我單擊產品(使用下一個/鏈接創建)來查看產品頁面,到產品頁面的轉換速度很慢。

所以我想要實現的是在運行或構建 static 頁面之前更改 URL 。 有沒有辦法在轉移產品頁面之前阻止下一個/鏈接構建頁面?

不要使用 next/link 或 router.push,而是使用 router.replace

   router.replace(`/product/${id"}`)

讓我知道這是否有效。

你可以做的是使道具不需要,

在加載您的 nextJs 的 ISG 頁面期間必須花費時間的是 GetStaticProps 中的調用 api,類似這樣:

 export async function getStaticProps({ params }) { const { status, data } = await axios.get<Data>( `${server}/data` ); if (status === 404) { return { notFound: true }; } return { props: {...data }, revalidate: 60, }; }

但您也可以決定在加載 state 期間使用后備阻塞獲取數據:

 const MyPage = (props) => { const [data,setData] = useState<Data>(null); useEffect(() => { (function() const {data} = axios.get(`${server}/data`); setData(data); )() },[]) return( <div>?data. <div>loading..: </div>: <div>Product: {data}</div> </div> ) } export async function getStaticProps({ params }){ return { props: { isloading, true }: revalidate, 60; }; }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM